我为什么后来远离了 Java

2015-05-10 01:55:36 +08:00
 noli

我的编程生涯:

  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好,或者反驳某些语言炮的时候,我都跟着叫好。

我不应该写这个帖子的。

34284 次点击
所在节点    程序员
226 条回复
noli
2015-05-10 15:50:01 +08:00
@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
2015-05-10 16:01:11 +08:00
那些跟我鼓吹什么 阿里巴巴啊,twitter啊,git 啊什么的公司是用Java的朋友们。

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

我写这个帖子是告诉你们,作为一个要生活要发展要自立的程序员,Java 作为主力是何等不堪的选择。当然,你连我这个目标都没看懂,跟我打语言的宗教大战。嗯,你喜欢就好,反正你肯定打不死我:因为老子写过Java的轻量级 interpreter,用Java攻击我会被转化成 AST 的,哈哈哈哈。
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
2015-05-10 16:13:35 +08:00
我知道Java很好很强大,但是谁能告诉我为什么桌面上的JVM这么难用?
x4ser
2015-05-10 16:14:37 +08:00
自从前些日子那篇java的帖子开始,这些天每天都能看到关于java的战帖,整个论坛的戾气值陡增了十倍。
hepin1989
2015-05-10 16:21:34 +08:00
v2ex已经越来越变味了,哈哈
noli
2015-05-10 16:28:42 +08:00
@yangruixuan

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

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

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

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

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

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

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

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

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

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

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

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

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

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

当然,我相信某些语言的确是只有很爱编程的人才会去尝试的,毕竟人生苦短。
noli
2015-05-10 16:45:27 +08:00
@yangruixuan 能用 Java 来开发 核心低层和框架部分 的人肯定不会在意我说这些,甚至不会来看这个贴得。你不用替我担心啦。
yangruixuan
2015-05-10 16:45:42 +08:00
@hepin1989 哈哈,确实,人生苦短,周末还泡在论坛不出去的技术宅也是醉了
typcn
2015-05-10 17:10:50 +08:00
@noli 专门登陆上来点个赞
sumhat
2015-05-10 18:04:49 +08:00
每天靠写 Bash 混饭吃是什么水平?
ipconfiger
2015-05-10 18:17:27 +08:00
看到这个帖子又要火起来就知道,每一年毕业找工作的季节又要到啦
yakczh
2015-05-10 18:28:06 +08:00
月经又来了,为什么没人开个贴讨论怎么设计一种比php/java都好的语言呢?
fulvaz
2015-05-10 20:18:31 +08:00
@ivanchou 还有clojure这个坑哟 [手动坏笑]
Lonely
2015-05-10 20:27:30 +08:00
不说别的,楼主就晒一下你做了些啥,在哪上班,多少工资就行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/189854

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX