V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
noli
V2EX  ›  程序员

我为什么后来远离了 Java

  •  
  •   noli · 2015-05-10 01:55:36 +08:00 · 34761 次点击
    这是一个创建于 3515 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的编程生涯:

    1. 小学是Logo
    2. 初中是Pascal
    3. 高中是自学JSP和Javascript,为了写论坛
    4. 大学软件工程,教的还是Java,但老子自学C++去了(这简直是我人生中最成功的决定之一)

    在大学那会儿基本上是主动放弃Java了,原因之一当然是已经对语言很熟了,但是觉得没有必要再去碰延伸开去的东西,例如SSH啊EJB啊什么的。虽然当时Java还是非常红的,Sun还很强,Eclipse 也是当时最强的IDE之一。

    当时是看见这几件事情,决定放弃Java的:

    1. 大公司例如银行、保险、金融等等都招Java,为啥,因为他们的IT团队都很大随时有人走,随时要新人接着上。这说明了Java 很适合大团队管理,因为写法超死板,框架太强力,不需要个人发挥。

    2. 我大学时的同学就算以前没有编程,只要肯学,学Java 还是可以很容易追上我当时的水平(你要对我高中时肯自学JSP的那种劲头有信心),甚至后来都可以跟我一样帮大学老师做项目了。这说明了什么:用Java的核心竞争力不是经验,你写得越多,你的经验优势就越小。

    3. 当我开始想学习Unix,想学习编译器的时候,虽然我甚至因为Java的原因学习了一下 ANTLR,但我发现用Java写这些东西的代码时,实在距离我想表达的,我所知道的东西太远了:尤其是对比 C++ Template 的表现力的时候。

    所以现在我看见有人觉得Java好,或者反驳某些语言炮的时候,我都跟着叫好。

    我不应该写这个帖子的。

    226 条回复    2015-06-28 17:05:29 +08:00
    1  2  3  
    djyde
        1
    djyde  
       2015-05-10 02:06:41 +08:00
    我学 Java 是为了写 Android

    在写 Android 之前,我是 Java 的无脑黑

    在写 Android 之后,我觉得 Android 选择 Java 是非常正确的选择

    我仍然认为在其它方面的 Java,like a shit
    tonyluj
        2
    tonyluj  
       2015-05-10 02:11:37 +08:00
    大一的时候自学Java的时候觉得很喜欢,很有前途,曾经仰慕的大神师兄都是用Java做项目。而大二下的时候毅然决定转C++。。。
    感觉用C++后,接触的东西比以前多了不少。C++、C、Lua、Python、Go、Kernel、Haskell、网络编程等等。
    于是搞到了BAT里Java见长的Offer,不过不是去搞Java。。。
    vietor
        3
    vietor  
       2015-05-10 06:43:24 +08:00 via Android
    任何语言都有短板,任何语言都可以拿起来就用。当然自己的主力语言还是要确定好,因为你会将其他语言写的都和它很像。我主力是C/C++,语言栈是:NodeJS,PHP,Java,工具语言是:Python,LISP,Bash,Go。
    handleyan
        4
    handleyan  
       2015-05-10 07:13:15 +08:00 via iPhone   ❤️ 25
    我阐述一下我的个人观点吧:
    1.任何语言都是易学而难精,学一门语言不要以为会用它写几个demo了就认为自己掌握了,我向来认为接触一门语言到写出helloworld的时间加上搭环境不应超过半天。但是千万不要以为你就精通了。
    2.用好java真的很难,暂且以java将一些工程师归为一类,如果java就是在ssh的架构下写代码,为什么有些人工资不到一万,有些人能拿十几万。如果你认为你的经验和能力很容易被人赶上,不礼貌地说你还没有进入java的大门。
    3.语言永远只是工具,要想用好一门语言你不仅要了解她的语法、语义。拿java来说,你不用关心jvm吗?你不用了解linux系统吗?你不用了解算法吗?你不用了解网络编程吗?你不用了解存储和分布式计算吗?在如今的环境你不要了解大数据处理和机器学习吗?找一个你身边你认为优秀的所谓的java工程师问问看看答案是什么。
    4.要不要去了解和会不会去了解更多相关知识,无关一门语言,这是程序员个人修养的问题。也是制约程序员走向28分化的原因。
    最后再说一句,什么语言真的不重要,参加工作后,如果你想成为一句优秀的工程师的话,要做的功课往往在语言之外。工作中第一位的是完成功能,第二位是怎么完成功能,第三位才是怎么优雅地完成功能。就这个东西就够琢磨几年了,共勉吧。
    cangshu
        5
    cangshu  
       2015-05-10 08:02:37 +08:00 via Android
    存在即是理由,这种谁好谁坏的问题没有争论的意义。Java市场份额那么高,肯定是有优势在的。
    teddysun
        6
    teddysun  
       2015-05-10 08:03:50 +08:00
    PHP难道不是最好的语言吗?
    其实,用什么语言实现并不重要,重要的是项目。
    kalman03
        7
    kalman03  
       2015-05-10 08:12:25 +08:00
    @handleyan 不能同意的更多。手机打字还是很累的。
    kalman03
        8
    kalman03  
       2015-05-10 08:15:05 +08:00
    每天永远不会缺少的就是这种无聊透顶的去争论哪门语言好,哪门框架好,汗!从没停止过,而且还会继续。。。。
    Earthman
        9
    Earthman  
       2015-05-10 08:59:55 +08:00
    小学就开始玩logo,初中开始正儿八经地编程,,,,这经历真是跪了。小学时候我还以为那个方方的显示器就是电脑本体呢。。。直到初中才见过一次PC,还是那谁援助学校的,连机都没开过。。。
    Septembers
        10
    Septembers  
       2015-05-10 09:03:38 +08:00
    @Earthman 我小学只学VB6 .......
    canautumn
        11
    canautumn  
       2015-05-10 09:04:54 +08:00
    我也讨厌Java,不过4楼说的有道理,前几天v2里还有人晒月2w新币的java的offer
    msg7086
        12
    msg7086  
       2015-05-10 09:08:56 +08:00
    @Earthman 初中Pascal多半是走NOIP路线的。
    话说当年学Pascal我初二,一个班里我年纪最大……
    znoodl
        13
    znoodl  
       2015-05-10 09:41:45 +08:00 via iPad
    话说高中才见过电脑的是不是弱爆了😳
    njutree
        14
    njutree  
       2015-05-10 09:46:05 +08:00 via iPhone
    @handleyan 说的挺有道理的,语言只是工具,怎么用和用的怎么样都看我们自己.
    xinyewdz
        15
    xinyewdz  
       2015-05-10 09:56:37 +08:00
    Java主要是大型项目,复杂和规则比较多,主要是大项目管理需要。当一个项目足够大时,怎么架构好,组织好代码是最大的问题。这不是脚本语言,弱类型语言可以做到的。各种语言都有适合的领域。
    mozartgho
        16
    mozartgho  
       2015-05-10 09:59:35 +08:00
    脱离需求和项目实际情况谈语言,都没有意义
    qinkun1234
        17
    qinkun1234  
       2015-05-10 10:26:30 +08:00
    楼主第一个观点倒是有点对。 反复权衡java与其他之后,我最近决定入手scala了。
    Earthman
        18
    Earthman  
       2015-05-10 10:30:21 +08:00
    @znoodl 高中时才有那么一点点电脑课,上机房要穿鞋套。。。看着老师不停地右键刷新桌面感觉好高端。。。。。不过现在觉得他好傻逼。。。。。。。
    koykoi
        19
    koykoi  
       2015-05-10 10:31:52 +08:00
    钱给够了 写啥都行
    watzds
        20
    watzds  
       2015-05-10 10:48:04 +08:00 via iPhone
    你现在在用C++做什么?
    clino
        21
    clino  
       2015-05-10 11:09:14 +08:00
    我对java影响比c++好不少
    像云风这样的C++黑的观点基本上我都同意...
    ivanchou
        22
    ivanchou  
       2015-05-10 11:21:58 +08:00 via Android
    @handleyan 不能同意更多,语言永远只是工作,要真的在语言上纠结浪费太多时间,那就真的成为码农了
    ivanchou
        23
    ivanchou  
       2015-05-10 11:22:07 +08:00 via Android
    @handleyan 工具
    hepin1989
        24
    hepin1989  
       2015-05-10 11:30:18 +08:00
    java其实不是那么简单的

    还有语言只是工具而已,会一门语言,这个会和精是差很多的

    如果吐槽java差,那么google twitter linkedin gilt这些都是傻逼吗?

    当然不是,差的只有工程师,相反我想说,java很强的。
    hepin1989
        25
    hepin1989  
       2015-05-10 11:31:58 +08:00
    @qinkun1234 一个好的scala工程师,一定是个好的java工程师。
    SoloCompany
        26
    SoloCompany  
       2015-05-10 12:16:11 +08:00 via iPad   ❤️ 1
    小学 没摸过电脑
    初中 课余可以玩一下 apple II 可以玩一下 basic,能用上 8088 已经是高中的事儿了
    高中 没多少课余时间,但可以玩到当时比较流行的 turbo pascal 做点自己喜欢的玩意儿
    大学 教学语言啥的,不是c就是c++呗,后来java诞生了,但也没多少兴趣去吃螃蟹
    工作前四年,混吃等死,工作需要的编程无非就是vb或者lotusscript,这期间互联网大潮来了
    后来换了份工作,然后,被迫从0开始学习java,直到现在,ssh啊ejb啊还是不太懂玩不转


    也难怪要时不时被黑༼ԾɷԾ༽
    monsabre1
        27
    monsabre1  
       2015-05-10 12:34:54 +08:00
    后台这些

    python+cpp/java引擎可以实现纯java系统90%的性能
    成本却可以降低一半

    所以如果不是银行 你怎么选择?
    incompatible
        28
    incompatible  
       2015-05-10 13:05:11 +08:00
    @monsabre1 成本如何可以降低一半? 有没有案例?
    baozijun
        29
    baozijun  
       2015-05-10 13:08:22 +08:00
    @monsabre1 这样说来阿里的人确实是脑残了,关键是那群搞java的脑残还几乎个个都是百万富翁....
    feiyunruyue
        30
    feiyunruyue  
       2015-05-10 13:20:18 +08:00
    C++难道不是更复杂吗?
    sudoz
        31
    sudoz  
       2015-05-10 13:22:58 +08:00
    @hepin1989 同一你的看法,工程师本身的差距远大于语言本身的差距
    Reficul
        32
    Reficul  
       2015-05-10 13:23:58 +08:00
    @Earthman
    我小学教海龟,然后我觉得我们老师没有坚持到第三节课。
    chaucerling
        33
    chaucerling  
       2015-05-10 13:24:15 +08:00
    @baozijun 阿里转java是为了改善性能,你没有那么高的性能需求,用什么java
    YidaZh
        34
    YidaZh  
       2015-05-10 13:47:22 +08:00
    赞同最后一句话。
    issues
        35
    issues  
       2015-05-10 13:49:43 +08:00
    java 是企业开发的,当然还有android, 中小型项目还是用解释性语言就足够了。 就这样, c++ 没怎么学过。不做表示, 一句话吧, 每种语言各有各的长处和短处, 但这并不重要, 重要的是思想。思想是通用的。
    monsabre1
        36
    monsabre1  
       2015-05-10 14:00:46 +08:00
    @baozijun

    电商后台也很复杂 阿里也有资源追求最后的那10%
    中小公司除了高频交易 必须c++/java
    不用python不明智
    anexplore
        37
    anexplore  
       2015-05-10 14:01:34 +08:00
    @hepin1989 赞同!!语言只是工具,真正的牛人用什么都牛。。。吐槽语言垃圾的,我绝的大部分情况是没在合适的场景用合适的语言。。
    monsabre1
        38
    monsabre1  
       2015-05-10 14:05:46 +08:00
    # -*- coding:utf-8 -*-
    #中文注释

    import sys

    class A:

    s1 = 333 #公有属性
    __age = 0 #私有属性

    def __init__(self,age): #构造器 专有函数 __开头 __结尾
    self.__age=age
    return

    def __del__(self): #析够 专有函数 __开头 __结尾

    return #函数体没内容则必须有return 否则可有可无

    #private
    def __doSomething(self, s): #私有函数 __开头 无__结尾
    print self.__age
    return
    #public
    def doSomething(self, s): #公有函数
    self.__doSomething(s)
    print s


    def doSomething(v):
    vv=v+1;
    return vv

    def main():

    a=A(111) #对象 对类实例化
    a.doSomething('222') #调用对象的公有函数
    print a.s1 #访问对象的共有属性
    print doSomething(444) #函数调用函数 同时被调用函数有返回值




    if __name__ == '__main__':
    main()


    输出

    111
    222
    333
    445

    这是python最小全功能工程 几乎涉及方方面面
    java的呢
    bk201
        39
    bk201  
       2015-05-10 14:35:33 +08:00
    卧槽又开始了,这是一星期一java的节奏,要不我们来谈谈php
    YORYOR
        40
    YORYOR  
       2015-05-10 14:51:32 +08:00   ❤️ 2
    发现最近每个吐槽java的都是吐槽SSH那一套太重了,而且这些人对java也只接触到了SSH这一层吧(SSH的确可以吐槽很重),要是关于java你只接触到SSH这一套就开始吐槽了,我也只能说两个字:SB
    noli
        41
    noli  
    OP
       2015-05-10 15:50:01 +08:00   ❤️ 2
    @handleyan

    1. “任何语言都是易学而难精”。恕我不能赞同,Java 这种连lambda 捕获外部变量都不用考虑内存管理的,相比起C++恐怕还真没什么资格说易学难精。Java 这种连代数类型的feature 都没有的语言,恐怕跟 Haskell, C++ 比起来,恐怕还真没什么资格说易学难精。不说别的,Java 这种连JVM低层都不能支持真正泛型的,恐怕比起 C#来说都没有资格说易学难精。

    2. 比工资? 写Java 的恐怕只有在那些 银行、保险的IT 部门才会有高工资吧?在技术就是生产力的互联网,除了写Android,恐怕Java 都不是最优选择吧? 等打脸。跟我比工资?劝你别比,我没有工资。

    3. 要了解JVM才能在特定场景下优化使用嘛,你是不是想说这一点? 那我问你,绝大多数生产环境的 JVM 是用啥来写的?是C++。不了解C++不了解OS低层,你根本没法做有效的优化。这就是我所说的,Java 作为一门语言,离低层OS太远了,灵活性又TM比Python, Javascript 差太远了。

    4. 我说的就是语言,你岔开话题没意思。就算你真的要岔开,那你倒是举些好例子来迷惑一下小白嘛。

    什么语言确实真的不重要。但我相信你还没有到有说这句话的资格的时候。
    noli
        42
    noli  
    OP
       2015-05-10 16:01:11 +08:00
    那些跟我鼓吹什么 阿里巴巴啊,twitter啊,git 啊什么的公司是用Java的朋友们。

    我真的服了你们了,你们真的去了这些公司工作了吗?就算这些公司真的是Java 主流,这TM跟你有毛线关系?

    我写这个帖子是告诉你们,作为一个要生活要发展要自立的程序员,Java 作为主力是何等不堪的选择。当然,你连我这个目标都没看懂,跟我打语言的宗教大战。嗯,你喜欢就好,反正你肯定打不死我:因为老子写过Java的轻量级 interpreter,用Java攻击我会被转化成 AST 的,哈哈哈哈。
    yangruixuan
        43
    yangruixuan  
       2015-05-10 16:13:12 +08:00
    大学开始接触编程,入门的语言是C#,为了接外包项目也用过VB、Delphi、ASP……
    毕业为了找工作转了J2EE,毕竟当时只有中小公司用ASP.NET
    工作了4年后为了跳槽去互联网公司,转向了PHP。
    平时自己写一些iOS App和Android App

    我觉得语言对于大多数人来说就是工具,讨论孰高孰低、对比优劣太过伤神。
    有些素质是你用任何语言也需要具备的,如设计能力、调试能力、架构能力、沟通能力、对代码的洁癖等。
    对于语言的选择更多是对方向的选择,你写iOS没得选就得用OC或Swift,你写Android就得Java。离开Java说明你的工作需要降低了,仅此而已。
    Laforet
        44
    Laforet  
       2015-05-10 16:13:35 +08:00
    我知道Java很好很强大,但是谁能告诉我为什么桌面上的JVM这么难用?
    x4ser
        45
    x4ser  
       2015-05-10 16:14:37 +08:00
    自从前些日子那篇java的帖子开始,这些天每天都能看到关于java的战帖,整个论坛的戾气值陡增了十倍。
    hepin1989
        46
    hepin1989  
       2015-05-10 16:21:34 +08:00
    v2ex已经越来越变味了,哈哈
    noli
        47
    noli  
    OP
       2015-05-10 16:28:42 +08:00   ❤️ 1
    @yangruixuan

    语言只是工具这种说法看似很有道理,但本质上我不能完全认同。有句话大概意思是,手里有锤子,看什么都像钉子。如果普通的锤子确实有这种魔力,那么恐怕语言“只是”工具这种说法还是能站得住的。

    事实是,编程语言,甚至是自然语言,以及其延伸出来的文化生态、社区氛围,都会局限一个人的眼界和能力。

    很早以前有人跟我说 Java 是大工业语言,当时我也没觉得这句话有什么深刻含义。但我最近两三年倒是明白了,Java 是一种被大公司用来圈养码农的语言。如果一个程序员本身有很好的多种技能,他不会介意这个事情,换别的地方他们也能工作。

    但是对于大多数,尤其是在天朝,由于各种你懂的原因,本来其实不预期进入IT行业但又阴差阳错读了软件相关专业的人来说,Java 可能就是他们成长轨迹里面唯一有机会被塞进脑子里的语言。

    对于这些不幸的兄弟们,我只想他们早点痛下决心,要么改行,要么改语言。
    tanlsh
        48
    tanlsh  
       2015-05-10 16:31:45 +08:00
    4楼说的好,楼主是个喷子
    Andiry
        49
    Andiry  
       2015-05-10 16:34:26 +08:00
    转啥,C++吗?C++照样被Linus喷成狗,大家都去学C好了
    noli
        50
    noli  
    OP
       2015-05-10 16:36:49 +08:00   ❤️ 1
    @cangshu

    逻辑学不好,就别出来掺合程序员的事情了。

    “存在即是理由” 是你自己说的吧?你是不是想说:存在即合理?黑格尔肯定要被你气死了。

    Was vernünftig ist, das ist wirklich; und was wirklich ist, das ist vernünftig.

    这是黑格尔的德语原文。目前比较权威的翻译是:
    凡是合乎理性的东西都是现实的;凡是现实的东西都是合乎理性的。

    Java 的市场份额高,这是现实。这个现实是可以用理性去分析的。
    但你要说Java 有什么优势,那跟他市场份额高真的关系,你还真没有给大家好好分析过。

    就好像,中国人在东亚范围内有很高的人数比例,但你要说中国人在东亚范围内很有优势?我觉得你得好好解释解释是什么优势……
    yangruixuan
        51
    yangruixuan  
       2015-05-10 16:41:58 +08:00
    @noli 不只是Java,任何语言在大公司都会有基础架构组去做核心底层和框架部分,方便后面批量的生产。你的担心我理解,不过我觉得多虑了,任何绝世武功都需要练功人本身的资质,能不能突破天花板也是和Java无关的,你替别人着急也急不来的。安啦
    hepin1989
        52
    hepin1989  
       2015-05-10 16:42:48 +08:00   ❤️ 1
    我只想说一句,一般意义的说,会多种语言的程序员会比只会一种语言的程序员好一点。

    我相信v2ex上会多种语言,并且精通好几门的人大有人在。

    学习语言,更多的是学习范式和其生态,某种语言流行,那么某种语言坑爹的人也会多,因为基数大啊。

    相反的,某种语言如果小众,那么发现坑爹的难度不是也大了么?

    当然,我相信某些语言的确是只有很爱编程的人才会去尝试的,毕竟人生苦短。
    noli
        53
    noli  
    OP
       2015-05-10 16:45:27 +08:00
    @yangruixuan 能用 Java 来开发 核心低层和框架部分 的人肯定不会在意我说这些,甚至不会来看这个贴得。你不用替我担心啦。
    yangruixuan
        54
    yangruixuan  
       2015-05-10 16:45:42 +08:00
    @hepin1989 哈哈,确实,人生苦短,周末还泡在论坛不出去的技术宅也是醉了
    typcn
        55
    typcn  
       2015-05-10 17:10:50 +08:00 via iPhone
    @noli 专门登陆上来点个赞
    sumhat
        56
    sumhat  
       2015-05-10 18:04:49 +08:00 via iPhone
    每天靠写 Bash 混饭吃是什么水平?
    ipconfiger
        57
    ipconfiger  
       2015-05-10 18:17:27 +08:00
    看到这个帖子又要火起来就知道,每一年毕业找工作的季节又要到啦
    yakczh
        58
    yakczh  
       2015-05-10 18:28:06 +08:00
    月经又来了,为什么没人开个贴讨论怎么设计一种比php/java都好的语言呢?
    fulvaz
        59
    fulvaz  
       2015-05-10 20:18:31 +08:00
    @ivanchou 还有clojure这个坑哟 [手动坏笑]
    Lonely
        60
    Lonely  
       2015-05-10 20:27:30 +08:00   ❤️ 1
    不说别的,楼主就晒一下你做了些啥,在哪上班,多少工资就行
    flight2006
        61
    flight2006  
       2015-05-10 20:41:58 +08:00
    脱离应用场景谈技术都是耍流氓,我还是继续看我的Spring 压压惊...
    sing1ee
        62
    sing1ee  
       2015-05-10 20:45:01 +08:00
    Java真的有毒,对这个毒能够抗得过去的,都是优秀的程序员。
    zhouquanbest
        63
    zhouquanbest  
       2015-05-10 20:52:02 +08:00
    说一门语言很坑 一般是指的整个技术环境
    Java是个好语言 你说设计模式坑 企业开发坑 但那些只能说是extends
    我只在Android开发时用Java 对我来说 他最坑的地方 应该是语法糖太少 太过朴实 很难玩出很酷的东西

    我也尝试过在Android上用scala或kolin 不过最后发现其他的只能叫玩具。 工作起来 需要考虑的因素太多 Java的简单 反而很好。

    当然也有些比较有意思的东西可以玩 比如现在也有lambda了 也有RxJava这样的响应式编程模式 也有Dragger这样的依赖注入框架可以造轮子

    所以 你们觉得Java不好 是指的你们BS的“古老”的开发者 他们是长辈了 不需要去酷
    你要用Java时还BS它 只能说你自己不够酷 没找出好玩的地方
    itfanr
        64
    itfanr  
       2015-05-10 21:53:49 +08:00
    只能说个人喜好吧,我个人也是放弃了Java,并不是语言不好,只是我想学习更加深层次的语法啊、编译器啊什么的。Java适合团队维护一个大项目,三五年的那种。。。不适合个人自己搞。
    miao1007
        65
    miao1007  
       2015-05-10 22:29:18 +08:00
    又开始吵了..... 只是按照借口去实现,当然没有什么经验优势
    randyzhao
        66
    randyzhao  
       2015-05-10 22:54:04 +08:00
    遇到过写 java 的程序员, 连 cd 都不会的
    也遇到过做 ios 的, 不知道什么是 pwd

    一直觉得用什么语言, 真的不重要.
    miao1007
        67
    miao1007  
       2015-05-10 23:02:12 +08:00
    楼主说的服务器框架,我同样也没有兴趣。但是我认为楼主想法片面了,在Android中

    1. 在兼容性与效率上达到了平衡 ,以Android来说,他们底层都是C绘图引擎实现的,使用JAVA调用了绘图API,就可以完成复杂的绘图任务;
    2. 由于JAVA是一个面向对象非常高的语言,它可以使项目高度抽象化,分工更加明确;只用写一个基类 + 接口,就可以扔给其他人写了。
    3. JAVA有非常多的社区与开源库,同样也可以提高生产效率。

    总之,通过JAVA可以快速完成一个项目,时间就是生命嘛。
    noli
        68
    noli  
    OP
       2015-05-10 23:41:36 +08:00
    @miao1007 其实我真是不想回复你们这些中低级Java 粉……

    1. 在兼容性和效率上达到了平衡……你拿一个Java可以跨平台的图像相关的东西来看看是不是真的效率与兼容性平衡? Java Swing?再各个平台上按照Java 自己的理解画个界面出来,这叫做兼容性? 你说 C# 和 Unity 我还可以勉强同意吧……

    2. Java 是一个面向对象非常高的语言??我就真是呵呵了,这就是为什么你们这帮人应该多学学其他语言开开眼界…… 不要以为有interface 有虚函数,有public private 就是面向对象非常高好不好,你们应该好好了解一下Simula 或者 OC 里面的 message passing 机制,能够怎样以轻松得多的方式解决 Java要很麻烦才能解决的问题,嗯,他们都是经典的OO语言。

    3. 说得好像只有 Java 才有社区才有库??你们Java 社区这么厉害,来个Coroutine 的库用用?
    ether
        69
    ether  
       2015-05-11 00:05:06 +08:00
    做编译器的表示什么语言都能立刻上手
    phx13ye
        70
    phx13ye  
       2015-05-11 00:08:47 +08:00
    劣币驱逐良币, 状哉我大Java
    solome
        71
    solome  
       2015-05-11 00:16:58 +08:00
    @djyde 无比赞同~
    noli
        72
    noli  
    OP
       2015-05-11 00:20:15 +08:00
    @zhouquanbest

    现在写Android 都可以把 Java 甩一边去啦,就你们这种人还以为Java除了用来维护那些大公司项目之外还有别的用处吧? 你用Scala 只不过是换汤不换药,又没有谷支持,当然就玩不转啦。

    用用个游戏框架或者直接封装 OpenGL ES 随时就可以做出一套UI 框架出来,lua 都能杀死一大片Java。
    qiuyi116
        73
    qiuyi116  
       2015-05-11 00:21:19 +08:00
    语言简直就是程序员的圣战了。。其实,什么语言都是用来写东西的。写什么,要看什么语言合适。
    noli
        74
    noli  
    OP
       2015-05-11 00:23:39 +08:00
    @qiuyi116 很明显Java 就是那种干啥都只能勉强对付过去的那种语言。再强的程序员用Java 也会被绑住手脚。
    hepin1989
        75
    hepin1989  
       2015-05-11 00:28:41 +08:00
    @phx13ye 爱卿这是双关呢?
    noli
        76
    noli  
    OP
       2015-05-11 00:39:23 +08:00
    @yakczh “比php/java都好的语言”,这种语言早就有了,只不过那些不想承认自己的攻击特别低等的人不想接受现实而已。你就说,Python 能不能把这两个都干死吧。

    想说 Python 性能问题的, Pypy 或者 Pyston 都值得了解。如果JIT的性能都不能满足需要,那么需要考虑的应该是 C/C++
    incompatible
        77
    incompatible  
       2015-05-11 00:53:38 +08:00
    @monsabre1
    看了38楼笑哭了
    一个类和一个main函数 = “最小全功能工程 几乎涉及方方面面“??
    如果你对Java有一点点了解,你想必不会不知道Java也可以在一个文件里实现同样的事情。

    另外:
    你在27楼说的“python+cpp/java引擎可以实现纯java系统90%的性能 成本却可以降低一半 ”
    到底有没有案例??
    zhouquanbest
        78
    zhouquanbest  
       2015-05-11 00:59:22 +08:00
    @noli
    在下才疏学浅 请告诉我 写Android不用Java用什么?
    不用Java你要再造几套轮子?

    什么东西自己试了 在实际项目里用来再评判
    我尝试过Scala Groovy kolin等 没一个真正做到替换
    然而在这些里面 Scala算是最好的替代品 因为能直接使用现有的lib

    你要说用游戏框架 我就更笑而不语了 我只能说阁下技术太好 时间也多
    我这种玩票的跟不上
    zhouquanbest
        79
    zhouquanbest  
       2015-05-11 01:05:21 +08:00
    使用何种技术都要看场景
    单独的评判是没有任何意义的

    写一个简单的server python ruby都要比Java好
    但你如果要做到千万的量级呢?

    我实习时是在douban 算是国内最大的Python公司 我也是在那开始正式用Python做玩具以外的事
    待过 所以我知道Python也能做大型应用开发 但是代价不是在小公司随便撸撸能体会到的
    需要多少轮子和性能优化才能撑起来? 而这些对于Java来说却又很多现成且易用的解决方案

    所以任何技术有自己的有点和局限性
    在合适的场景选择合适的技术 才是程序猿该做的
    phx13ye
        80
    phx13ye  
       2015-05-11 01:15:59 +08:00
    @hepin1989 只是感觉java确实是语言里面的劣币, 为了向前兼容背负了太多包袱
    j16ZgMV9cs6ZB23n
        81
    j16ZgMV9cs6ZB23n  
       2015-05-11 01:21:37 +08:00
    有点意思哦喂。

    当然,我是C++粉。
    hepin1989
        82
    hepin1989  
       2015-05-11 01:23:15 +08:00
    @zhouquanbest 说的有理有据
    hepin1989
        83
    hepin1989  
       2015-05-11 01:23:58 +08:00
    @phx13ye 你看看py2 和py3呢?
    jun4rui
        84
    jun4rui  
       2015-05-11 07:10:16 +08:00
    @zhouquanbest 小公司搞大规模本身就不对,不过建议你看看淘宝十年,真到大规模靠的就是架构了,连各种文件、数据库系统都只能自己开发,需要充分利用各种语言的优势,根本已经不是单一语言的问题。甚至淘宝现在有些板块还是PHP的。
    noli
        85
    noli  
    OP
       2015-05-11 08:14:28 +08:00
    @zhouquanbest

    Android 不用 Java 还可以用 C++。 只用Java 的话,你连造轮子的机会都没有。区区在下不才,现在业余做的就是类似的事情,用C++包装游戏引擎甚至是OpenGL来做UI框架。

    如果你说我这就是制造轮子,一般人用不上,那好吧,Qt 满足你。
    实在不想学, 现在C++不也能写Activity 吗?

    你们这些 Java 狗老是说大规模大数据,说得好像你们一个写Java 的就能搞定这些似的。也就你们这种技术社区的盲从者,才会把用别人的轮子用的那么有自豪感了……可是你们知不知道,凡是用Java 做大数据的公司,最终还是要去自己调优 JVM 的?调优JVM 的时候,根本没Java 什么事情好不好?


    要比开源库,现成易用,Java 跟其他语言来比还真是不自量力啊……
    搞大数据不是只有Java 才有Hadoop MapReduce 什么的,不要老是被Java 社区的人洗脑……
    大数据团队不好说,因为肯定都是多语言混合的。
    就比单点的性能。
    听过 Nodejs, gevent, Eralang 没有?他们随便哪个写一个作为集群里面的单点支持高并发,不比你 Java 方便快捷性能好?

    图像识别、人工智能里面的CNN,正在变成实用的领域,就没有Java 的什么事情。

    “所以任何技术有自己的有点和局限性
    在合适的场景选择合适的技术 才是程序猿该做的”

    你算是说对了,所以不要死抱着Java 就感觉很了不起。
    IT世界里面的基础设施,现在还没有事情是离不开Java 的,将来也不会有。
    Khlieb
        86
    Khlieb  
       2015-05-11 08:44:20 +08:00 via Android
    timbotetsu
        87
    timbotetsu  
       2015-05-11 08:46:51 +08:00 via Android   ❤️ 3
    “我说的都是对的,我想听听你们这些人用垃圾、错误语言的想法”
    主楼精简版
    jackfan
        88
    jackfan  
       2015-05-11 09:14:18 +08:00
    格局要更开阔,别说你一程序员,就是刷油漆的,你雅思7分,一样可以年入50万,英语是程序员自我修养的第一因素。过了英语关,要选一个市场需求大,技术门槛高的活。 说实话,目前没有趋势非常好的语言,就像10年末的OC一样,一定要选还是OC
    DRcoding
        89
    DRcoding  
       2015-05-11 09:17:01 +08:00   ❤️ 1
    从回帖看了一遍,LZ一副高高在上的姿势,人品不行不谦虚的人,技术也不见得好到哪里去。
    stillwaiting
        90
    stillwaiting  
       2015-05-11 09:22:50 +08:00
    如@timbotetsu所说
    “你们这些 Java 狗老是说。。。”
    狗这个词一般都是自我戏谑,感觉LZ人品一般吧。
    sparrowMan
        91
    sparrowMan  
       2015-05-11 09:43:11 +08:00
    @stillwaiting 朋友说的不错 自己说自己 单身狗 程序猿 这都是自嘲 闹着玩呢 你要是说别人什么 狗 什么猿的 这就是不尊重人了
    noli
        92
    noli  
    OP
       2015-05-11 10:02:40 +08:00
    @DRcoding @ stillwaiting @sparrowMan

    是不是我人品好可以加工资?哈哈哈哈~~~

    好吧,我承认我过激了,虽然在说“Java 狗”这个词的时候,我心里面确实是满满的鄙视。
    向你道歉 @zhouquanbest
    hepin1989
        93
    hepin1989  
       2015-05-11 10:09:41 +08:00
    Nodejs, gevent, Eralang 就这个来说,gevent不是语言,Node.js也是framework,怎么混了呢?
    对于性能,还真跟不上java。

    还是那句话,语言只是一个顺手的工具罢了,没必要把别人整个社区都攻击了,别人又没有欠你钱,楼主戾气太重,宽宽心。
    zhouquanbest
        94
    zhouquanbest  
       2015-05-11 10:10:05 +08:00
    @noli
    所以这就是你的应用场景啊 并不适合使用Java 是很正确的选择
    你在Android上用OpenGL 这说明你是在做游戏
    然后你都要调优JVM 说明你对性能很苛刻
    然后你说你处理大数据Hadoop也不够(我自动理解Spark也不够)

    结合以上 我能推测的就是你在搞游戏的Client以及Server端开发
    如此一来 Java并不适合你 这个场景本来应该使用C++ 对吗?

    此外我不是抱着Java的社区狗 相反 我在Web开发上一般使用Python
    诸如Node和Go 没有做过线上的正式产品 没有实际的数据也不来吹B

    但因为一个场景的不适宜去嘲讽一门技术我是不赞成的
    vjnjc
        95
    vjnjc  
       2015-05-11 10:17:50 +08:00
    jvm是道槛...
    noli
        96
    noli  
    OP
       2015-05-11 10:23:36 +08:00
    @hepin1989

    你说得对,Nodejs, Gevent, 是 framework 不是语言。但是 Java 社区诞生不出这样的 framework 只能靠 JVM 提供 NIO,因为一旦你要扩展 JVM 的能力你得修改整个 JVM。就这一点来说 Java 作为一个语言是不是 渣?

    我不是攻击整个社区,我说得很清楚了,叫那些只会 Java 的人多开眼界。你应该不在此列表中。


    @zhouquanbest

    不是 Hadoop 性能不够。我举例是说明 Java并不独特,没啥了不起。

    嘲讽 Java 以及没开眼的 Java 程序员是因为他们碍眼,在我眼里 Java 这门语言确实一无是处。当然写 Java 的程序员和 Java 这门语言是两码事,有很多优秀的 Java 程序员本身并不只写 Java,我是没能力嘲笑他们的。

    但是 Java 狗们自动把这些程序员的功劳作为自己的自豪感来源,这就很碍眼了。嗯,没错,我又用 Java 狗 这个词了,恶意满满地用了。
    zhea55
        97
    zhea55  
       2015-05-11 10:30:09 +08:00   ❤️ 1
    语言本身没有问题,问题在于用的人的思维、经验、有没有话心思进行设计。我所见到的大多数java工程师都只是照着别人的类,实现自己的逻辑。代码臃肿、冗余,不过他们觉得无所谓,反而组织好的代码会令他们恐慌,因为他们需要花更多时间去学习那些设计思路。

    > 不过我也见过写的好的java代码,人家能把抽象类、继承、多态,体现的淋漓尽致。

    只能说大多数人都只是用一些框架,配置一些文件。学习框架,只会用,不深入研究其底层实现和思想。

    一遇到新的技术变革,很多东西都要推倒重来。

    磨刀不误砍柴工 这句话他们是永远不懂的。
    ivvei
        98
    ivvei  
       2015-05-11 10:30:51 +08:00
    @handleyan 你都说了语言只是工具,为啥还要把算法之类的拿出来讲…… 算法又不是Java专用的,别的语言照样有算法, 跟Java一点关系都没有。同样的,linux,网络络编程,存储和分布式计算,大数据处理和机器学习都不是Java专利。
    williamx
        99
    williamx  
       2015-05-11 10:31:11 +08:00
    @djyde 前面部分我和你是一样的,只是觉得Android选择java是最大的失败!
    drivedreams
        100
    drivedreams  
       2015-05-11 10:35:03 +08:00
    说的好像你多牛逼,你是谁啊,你用C++你就牛?你就有资格说别人是“JAVA 狗”。你写过什么牛逼的东西。堪比Linux量级的Java项目你做过吗。你用qt写Android,算了吧,你真的试过? 你用C++来做Android UI,你真的做过! 你用C++写Activity用多长时间,用Java写需要多长时间。时间是什么,时间就是金钱。
    1  2  3  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1812 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:18 · PVG 00:18 · LAX 08:18 · JFK 11:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.