V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Mr_Vangogh
V2EX  ›  问与答

Python与Java

  •  
  •   Mr_Vangogh · 2011-08-26 19:49:38 +08:00 · 14561 次点击
    这是一个创建于 4831 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我的专业并不是软件开发或者其他跟编程有关的。但是我对编程非常感兴趣。最近我想在Python和Java中选择一门语言好好学习学习,不知道各位前辈有没有什么建议?我在网上检索了一些,但是感觉挺晕的。

    PS:特别喜欢V2EX这个网站!从界面到内容都喜欢!
    48 条回复    1970-01-01 08:00:00 +08:00
    Livid
        1
    Livid  
    MOD
       2011-08-26 19:50:10 +08:00
    谢谢。这个网站就是用 Python 做的。:)
    Hyperion
        2
    Hyperion  
       2011-08-26 19:51:20 +08:00
    个人偏见: java这个瓜货!...
    ayanamist
        3
    ayanamist  
       2011-08-26 20:37:12 +08:00
    如果不是搞软件开发,建议用Python吧,脚本语言编写速度比较快,而且没有繁琐的编译过程。
    PS:我的TwiTalkerPlus和正在写的TwiOtaku都是Python写的,我也不是程序员,只是一个医学生。
    不推荐Java,太重量级了。
    pepsin
        4
    pepsin  
       2011-08-26 20:44:12 +08:00
    Python吧,java虽然严谨点,但代码量大又繁琐,初学很容易烦
    wenhuacn
        5
    wenhuacn  
       2011-08-26 21:19:08 +08:00
    如果要靠编程吃饭,先学Java
    如果个人兴趣,直接Python
    bhuztez
        6
    bhuztez  
       2011-08-26 21:40:13 +08:00
    选一个有interactive shell的语言就好
    Mr_Vangogh
        7
    Mr_Vangogh  
    OP
       2011-08-26 22:15:38 +08:00
    @Hyperion 能骂得详细点么:)
    Mr_Vangogh
        8
    Mr_Vangogh  
    OP
       2011-08-26 22:16:30 +08:00
    @pepsin 我有一定的C++基础,java比C++简单多了啊。
    Mr_Vangogh
        9
    Mr_Vangogh  
    OP
       2011-08-26 22:17:37 +08:00
    @wenhuacn 无法靠python吃饭么?
    chloerei
        10
    chloerei  
       2011-08-26 22:22:06 +08:00
    乱入:Ruby,又好玩又能吃饭
    ljbha007
        11
    ljbha007  
       2011-08-26 22:33:38 +08:00
    学Java吧,更健壮 更容易养成良好的编程习惯
    owenfight
        12
    owenfight  
       2011-08-26 23:03:43 +08:00
    有点萝卜白菜的意思。。 挺python
    makestory
        13
    makestory  
       2011-08-27 00:01:34 +08:00
    整体上还是定动态语言
    Hyperion
        14
    Hyperion  
       2011-08-27 00:25:06 +08:00
    # 首先, 我是来黑java的, 而且我对java了解一点也不深. 以下只是我接触之后的感受, 可能(肯定)没有什么价值, 并且有泄愤的成分. 如有喷者请轻喷. #

    @Mr_Vangogh java无能, 因为我不想看到脏东西, 我不喜欢我写出来的东西会脱离我的控制. 很不幸, java做到了... 可能是我还没有经过正统洗脑, 和java同步率太差的关系.

    有一段时间和java斗智斗勇, 本身的语法我可以接受, 有人说java类型乱, 但我也没什么感觉, 总比php靠谱. 可到后来套上了各种框架, 情况不就对了, 填xml填死你啊... struts2给我的感觉, 是框架在调用你的代码, 不是你借助框架帮你做事.

    我一开始就讨厌java, 我怀疑很少有写java的是知道自己写出来的东西到底是怎么工作的, 调用了什么, 那一步可能会出现问题云云.

    phprpc的文档里有这么一段:
    http://phprpc.org/zh_CN/docs/#%5B%5BPHPRPC%20for%20Java%5D%5D

    我一直觉得, java大多用于企业级开发, 不是神马光彩的事情. java就一死胖子, 迟早得心脏病死! 我一直很佩服大企业里那帮 "妙手神医", 给java续了这么长的命.
    alexzhan
        15
    alexzhan  
       2011-08-27 00:59:22 +08:00
    @Hyperion struts2很好用,填不了多少xml,照如你说,只能说明你只了解了java与其框架的皮毛而已。
    另外,我也对java与框架了解的不是很深。
    Hyperion
        16
    Hyperion  
       2011-08-27 01:09:19 +08:00
    @alexzhan 入门过程太凶残... 我可能有些夸大了
    laihj
        17
    laihj  
       2011-08-27 01:11:40 +08:00
    当然是python
    Mr_Vangogh
        18
    Mr_Vangogh  
    OP
       2011-08-27 01:19:32 +08:00
    @Hyperion @alexzhan 填xml有什么不好么?我感觉android里面用xml来配置界面之类挺好用的啊。
    Hyperion
        19
    Hyperion  
       2011-08-27 01:25:37 +08:00
    @Mr_Vangogh 填多了就肿了, 从配置到编译, 每一步都要一个xml... 你可以找一些教程看一下, 输出一句 "世界姥爷你好" 的代码量, 还没各种xml写的多.
    kongruxi
        20
    kongruxi  
       2011-08-27 02:18:52 +08:00
    @Hyperion 为什么总是要迁怒于Java呢?如果你不用Java来做企业开发,那你就用Ruby/Python做个出来试试吧

    Java的struts、Spring本来是以企业开发为目的做的,偏偏有人用来做web,然后却去责怪Java
    Mr_Vangogh
        21
    Mr_Vangogh  
    OP
       2011-08-27 02:26:02 +08:00
    @kongruxi 我是不是可以理解为,java做web比较乏力?
    Hyperion
        22
    Hyperion  
       2011-08-27 03:05:31 +08:00
    @kongruxi #14楼的注释看来还是太短了,或者说还不够直白,容易产生歧义。

    我不喜欢java的风格,臃肿,对我来说还可以再加上恶心这个定语。以为目前所知道的来说,java除了变态的解释方法和代码容易组织管理(这点完全是靠概念上的难度做到的吧?)这两个特点,还有神马优势可以"炫耀"吗?

    你说的那两个框架都是用来构建web应用的,难道还有别的用途吗?

    我不会在回复这个帖子了,希望可以把不安定的苗子掐死在摇篮里。我在这种话题上的表达nc了,过激了。
    27493586
        23
    27493586  
       2011-08-27 07:55:01 +08:00
    光学语言有什么用,首先明确自己的目的,再找合适的工具。不同工具应用的场合不同。

    如果真就只想“学编程语言”,推荐Python。

    1. 语法更优美,好学。https://github.com/livid/v2ex/blob/master/main.py
    2. 文档清晰易懂。Java的我没看过,比Ruby/Rails的文档写得好很多。http://docs.python.org/
    3. 不编译,直接运行。python main.py
    Mr_Vangogh
        24
    Mr_Vangogh  
    OP
       2011-08-27 09:53:58 +08:00
    @Hyperion 谢谢你的回复。我想我基本已经决定啦。我想我还是要先学好java,因为我觉得java对于我来说比较容易上手,并且资料更多一些。我连什么是框架都不是特别了解呢,需要补充很多基础知识。等我学好了再回头来看这个帖子:)

    PS:这氛围真好,比其他论坛好太多啦!
    Mr_Vangogh
        25
    Mr_Vangogh  
    OP
       2011-08-27 09:54:58 +08:00
    @27493586 还要学什么才有用啊?要有什么用啊?我就是纯兴趣玩玩,当然我也想玩出点名堂来:)

    不过你说的那三点感觉都不是问题啊。
    kongruxi
        26
    kongruxi  
       2011-08-27 10:01:58 +08:00
    @Hyperion 我自己本身也是学了Java和Ruby的,不过我也会建议别人去学Ruby,而不是Java

    "你说的那两个框架都是用来构建web应用的,难道还有别的用途吗?"

    我觉得应该这么说,那两个框架是希望用web的形式去构建企业产品,因为我觉得它们的思维是从企业开发的角度出发的,但偏偏互联网的一大特点是simple,像rails那样才适合用来互联网开发
    realfex
        27
    realfex  
       2011-08-27 10:08:59 +08:00
    14楼连同PHP也一起喷了。。亚历山大。。
    wellhome
        28
    wellhome  
       2011-08-27 10:44:50 +08:00
    大家都在喷java, 我想问一下,
    是否有python的电子商务网站成功案例吗?
    或者哪个银行的internet 应用是用java做的?
    纯web应用方面java肯定太重量了。让人无爱。。
    python还没深入,正准备看看。
    mywaiting
        29
    mywaiting  
       2011-08-27 10:53:01 +08:00
    敢情这基本算是V2ex上关于语言之争又一无聊贴了。

    讨论语言的好坏基本是无法讨论下去的,因为每种语言都有自己的优缺点,很难说清那种语言更优秀。多数时候,我比较这样愿意认为,无谓将时间浪费在讨论Python或者Java好用与否的问题上,如果你愿意用,你就去用;愿意去做就去做,无谓争论这种所谓“程序员”的语言偏好。。。

    记得有段话,王建硕的微博:对同一个东西,有人说,太重了,有人说,太轻了。他们其实不是在描述这件东西的重量,而是在描述他们自己的力气。同样道理,我们不必过于在意微博上对自己观点的评论。大家看似赞扬或者批评别人,其实仅仅是在描述他们自己。Via 王建硕

    我想这段话还是比较中肯地点中了程序员们的神经的。用Python的时候,用多了Tornado框架会觉得Django很重量,但我的老大却能把Django玩到出神入化,所以多数时候,自己的问题多于语言的问题。

    鉴于大家一致在“喷”Java,虽然我主要工作在Python中,但我觉得自己还算知道写几句Java的Hello world,为Java说几句好话很有必要。在大型Web程序开发中,Java肯定有其优势,这种优势不是那种几百行代码的网站能够体会的。

    曾经有段时间偶十分鄙视C++的东西,但当我在工作中自觉要用到V8的代码的时候,仔细收拾了一下C++,敢情自己过去对C++的认识基本是错误的。

    还想起自己曾经对OOP的设计模式颇为了解,后来在Haskell中发现面向函数编程的时候根本就没有这种OOP的设计模式(但有FP自己的一套方法)。

    翻看回复,还发现有人在喷PHP,PHP这么简单的语言,我觉得喷不喷其实就是你喜好的问题吧。爱用不用吧。

    多数时候是程序员自己的认识问题,我坚持这样认为。各种程序员除了喜欢对语言有各种攻击外,还有一个性能比较的偏好,正所谓“性能就是程序员的G点”,看到各种Web性能的比较报告,看来大家都麻木了吧,来个秒杀的 http://www.yi-programmer.com/blog/2011-05-05_warp-a-haskell-web-server.html 来刺激大家的G点。希望大家慢慢喷吧。

    所以,无谓把讨论浪费在对各种语言的“喷”上,有时间就参加点开源项目,贡献一点点力量,我们即使无名,却在尽自己的力量改变着这个世界。

    呵呵。
    bhuztez
        30
    bhuztez  
       2011-08-27 11:21:23 +08:00
    @mywaiting 是不是可以这么说,脱离具体应用场景,讨论语言好坏无意义
    kongruxi
        31
    kongruxi  
       2011-08-27 11:31:47 +08:00
    @mywaiting 说得真好
    Weakdancer
        32
    Weakdancer  
       2011-08-27 12:01:06 +08:00
    > 但是我对编程非常感兴趣

    @bhuztez
    > 是不是可以这么说,脱离具体应用场景,讨论语言好坏无意义

    我认为这个就是典型的“应用场景”

    > 我有一定的C++基础,java比C++简单多了啊

    这个也是

    @Mr_Vangogh 推荐楼主看下《python简明教程》

    http://woodpecker.org.cn/abyteofpython_cn/chinese/

    一百多页的样子,一天就可以看完,那时候再和java或者其他的语言做比较。

    而且我感觉这两种语言本身就不冲突,用java工作的人,业余时间很多都会用python完成一些自己喜欢的事情的。
    chloerei
        33
    chloerei  
       2011-08-27 12:18:48 +08:00 via Android
    银行应用都是一坨屎

    毫无兼容性可言,安全性全依赖硬件,拿来做企业应用代表那是减分的
    fly2never
        34
    fly2never  
       2011-08-27 12:20:04 +08:00
    java语言本来是一门很丑陋的语言,但是因为类库/历史原因.许多企业级的东西你不得不用java去做,用ruby/python要么根本不能做,要么需要花费大量时间在系统间耦合对接上.
    我个人觉得因为兴趣学java的人应该不多,更多的人不是选择了java,而是java的工作选择了他
    fly2never
        35
    fly2never  
       2011-08-27 12:20:41 +08:00
    @chloerei 还是那句话,工作让你选择java,而不是兴趣.
    chloerei
        36
    chloerei  
       2011-08-27 12:25:25 +08:00 via Android
    兴趣让我选择Ruby,然后找了Ruby的工作,每天活在乐趣中
    CMGS
        37
    CMGS  
       2011-08-27 12:40:13 +08:00
    老生常谈。。语言只是工具…
    到了汇编那一层,其实大家都差不多,你理解原理,一通百通。
    java做企业级有优势是因为太多现有的东西可以直接拿来用了,
    当然你说python不行?不见得…问题是得有人去做轮子,pylons算不算?

    要说赚钱养活自己,工具不会决定你能不能赚到钱,而是你自己本身的能力和雇主的需求匹配不匹配。
    我就是写python养活自己,同样的雇主说,有个项目我们要用java做,我也做过…
    学编程不是说学着哪门语言就天下无敌,那只是你武器罢了,真正行走江湖还是得靠内力…
    simy
        38
    simy  
       2011-08-27 13:04:15 +08:00
    @mywaiting 非常赞同,喜欢什么就用什么,不喜欢就赶紧换,总有一个语言适合自己
    simy
        39
    simy  
       2011-08-27 13:05:29 +08:00
    @CMGS 内力是传说中的数据结构,算法么?
    AntiGameZ
        40
    AntiGameZ  
       2011-08-27 13:09:19 +08:00
    楼主,你自己挖的坑,看来是填不上了,推荐你去看看我给的这篇文章,看完以后,或许能有所帮助。

    地址:http://blog.stackoverflow.com/2011/08/gorilla-vs-shark/
    CMGS
        41
    CMGS  
       2011-08-27 13:30:55 +08:00
    @simy 可以这么理解,当然不是说随手来个树图动态规划那样,我个人觉得还是对计算机本质的理解,程序运行的本质咯,再这基础上的算法数据结构实际应用起来也能更好的变通来适合实际需求…
    forwap
        42
    forwap  
       2011-08-27 13:40:22 +08:00
    黑Java + 1.
    Hyperion
        43
    Hyperion  
       2011-08-27 13:43:27 +08:00
    好吧, 看来我又要打自己#22楼的脸了

    @mywaiting @realfex 你们到底是肿么看出来我骂php了? #27射我一枪也就算了, #29还扫我一梭子... http://www.php.net/manual/zh/types.comparisons.php 请猛击此连接, 再结合一下两位大佬的java知识, 看看我有没有说错. 我不讨厌php, 因为很顺手, 干净.

    <?php
    $数字 = '1';
    echo $数字*2;
    ?>
    两位可以试着跑一下.

    语言是工具, 拿大扳手拧小螺丝当然会悲剧. 但请注意, #14我想表达的是: 我非常不喜欢拿着沾满油腻的扳手做事, 这是对工具本身的厌恶.
    Mr_Vangogh
        44
    Mr_Vangogh  
    OP
       2011-08-27 14:04:45 +08:00
    @mywaiting 你说得真好。。。我其实不是想问那个语言好,而是想让大家介绍介绍这两种语言。网上看得很晕。。。
    Mr_Vangogh
        45
    Mr_Vangogh  
    OP
       2011-08-27 14:06:11 +08:00
    @Weakdancer 好,我去看看你推荐的那本书:)
    Mr_Vangogh
        46
    Mr_Vangogh  
    OP
       2011-08-27 14:07:42 +08:00
    @AntiGameZ 好,谢谢你的推荐。我就去看!
    simapeng
        47
    simapeng  
       2011-08-27 15:31:19 +08:00
    如果用编程吃饭的话,建议仔细学习C和Python,如果只是想快速的入企业软件行业的话,可以学java,如果是想快速的进入互联网行业的话,可以考虑学习php,顺带提一句,单从收入来看,C程序员薪资要比java高不少。
    Droog
        48
    Droog  
       2011-08-27 15:38:24 +08:00
    不争会死啊。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2739 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:36 · PVG 15:36 · LAX 23:36 · JFK 02:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.