我为什么后来远离了 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好,或者反驳某些语言炮的时候,我都跟着叫好。

我不应该写这个帖子的。

34503 次点击
所在节点    程序员
226 条回复
flight2006
2015-05-10 20:41:58 +08:00
脱离应用场景谈技术都是耍流氓,我还是继续看我的Spring 压压惊...
sing1ee
2015-05-10 20:45:01 +08:00
Java真的有毒,对这个毒能够抗得过去的,都是优秀的程序员。
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
2015-05-10 21:53:49 +08:00
只能说个人喜好吧,我个人也是放弃了Java,并不是语言不好,只是我想学习更加深层次的语法啊、编译器啊什么的。Java适合团队维护一个大项目,三五年的那种。。。不适合个人自己搞。
miao1007
2015-05-10 22:29:18 +08:00
又开始吵了..... 只是按照借口去实现,当然没有什么经验优势
randyzhao
2015-05-10 22:54:04 +08:00
遇到过写 java 的程序员, 连 cd 都不会的
也遇到过做 ios 的, 不知道什么是 pwd

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

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

总之,通过JAVA可以快速完成一个项目,时间就是生命嘛。
noli
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
2015-05-11 00:05:06 +08:00
做编译器的表示什么语言都能立刻上手
phx13ye
2015-05-11 00:08:47 +08:00
劣币驱逐良币, 状哉我大Java
solome
2015-05-11 00:16:58 +08:00
@djyde 无比赞同~
noli
2015-05-11 00:20:15 +08:00
@zhouquanbest

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

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

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

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

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

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

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

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

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

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

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

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

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

© 2021 V2EX