[yc]超越Java--探讨程序语言的未来
刚刚看完一本"Beyond Java"的书,中文名叫《超越Java》,深入探讨了程序语言的未来
,对于其中一些见解,我感觉受益匪浅,于是决定写一篇读书笔记与大家分享。
Java依然是我最钟爱的语言,同样也是作者到目前最钟爱的语言,可以想象作者要在书
中批判Java是多么痛苦的事,但是世间没有任何东西可以永恒维持。作者的畅销书"Bett
er, Faster, Lighter Java"曾经获得Jolt Award震撼奖,书中作者采访了很多Java的知
名人士,有Jason Hunter(Apache在JCP的代表,Tomcat和JDOM的原始贡献者),James
Duncan Davidson(Ant和Tomcat的发明人),Eric Hatcher("Java Development
with Ant", "Lucene in Action"的作者),Dion Almaer(JCP成员)。这些人都对Java
的未来产生了一点怀疑,以下我就从书中摘抄一些重要的观点,而我造诣有限就不做过
多的个人评论了。当然,书中的观点也不是百分百真理,但我可以保证我是比较忠实原
文地摘抄下来的,至于究竟是否有参考价值就仁者见仁了。以下皆为摘抄:
--------------------------------分割线--------------------------------
1.气息
空气中已经有了不同的气息,巨大的改变瞬间到来,不过你不希望在一觉醒来之后忽然
发现自己已经被淘汰了,那么你需要这本书。
忽略其他解决方案就像鸵鸟把头埋在沙子里。
用Ruby花了4个晚上的时间,完成了用Java花了4个月的功能,生产力提高5到10倍。程序
代码为原来的1/4,配置文件为原来的1/5,并且性能并不比Java差。
水煮青蛙:如果你把青蛙放入热水中,它会直接跳出来,但是如果你从冷水慢慢地加热
,青蛙会不知不觉地被慢慢煮熟,我确定目前水温正在上升,我希望你开始留意。
复杂度惊人,Java似乎已经远离它的初创地了,你也许可以用更简单的方式解决最难的
问题,但是想要建立简单的Web应用程序却变得比以往更难了。
目前,Java仍然是山丘之王:Java社区朝气蓬勃,天才正在意图解决Java的难题;商业
厂商都支持Java。
许多专家认为,JVM本身比Java语言更重要。
我不是说Ruby在明天就会风靡全球,我甚至没有说任何东西在未来会达到Java今日的成
就,但是我也不相信Java会持久不衰。
Java已经远离它的的基础,大型企业的问题或许可以很容易解决,但是简单的问题反而
很难解决。
2.Java完美风暴(Java的开始)
Netscape Navigator和Java完美的结合将两家公司都推向了新的高峰,是applet成了Jav
a一飞冲天的跳板。
JVM具有空前的可移植性。
Java用沙箱限制了应用程序的破坏性。
即使在今天,我还是认为applet代表一种很好的构想,但是浏览器版本问题限制了apple
t。
行业标准和开放源代码,Java推动了开源,开源也推动了Java。
Java是史上最重要的编程语言。
3.皇冠上的宝石(Java的高潮)
Internet是Java出现的契机。
applet已经失败了,但Java却长成一头让人吃惊的猛兽。
Java背后有如此多重量级的厂商,Java变成了非常安全的平台。
在企业领域,软件开发速度比运行速度更重要。
Java的确征服了许多问题,但是Java也有缺陷。容易的企业问题已经被解决了,所以主
要厂商开始将时间花在困难的问题上。随着Java逐渐往复杂的问题移动,简单的问题也
就越来越不容易解决了。威力虽然强大,但许多应用程序不需要这些多余的企业功能。
社区力量正是Java皇冠上的珠宝。
各家厂商一致支持Java。虽然Sun是发明者,但IBM大概是支持Java的最大力量。
Java是开源社区的主要玩家。
核心Java厂商们合作建立标准。
4.打破玻璃(Java的缺陷)
Java本身不适合表现结构性的数据,这使得Java过度依赖XML,因此造成额外的复杂度和
体积暴增。
静态类型系统已经不是Java的优势,而是劣势。
Java有基本类型,效率是最重要的考量,所以Java是混种语言,而非纯面向对象语言。
导致反射不自然地冗长。
为了要吸引C++社区投入Java,我们付出了一些代价,我认为这很公平,但是别低估这个
代价。
我害怕如果IBM收购Sun,会把发展中心放在最困难的企业问题上,让Java偏离它的基础
。(vole说:Sun刚刚收购MySQL,看来Sun仍然志存高远,IBM收购Sun的可能性很低。)
你可能认为我们可以修改Java,而不是扔掉它。说的容易,做起来可就难了。Sun不计代
价地小心保持回溯兼容性。如果你看到全盘翻新之后少人问津的VB.NET,你就更能尊重S
un的观点。
Java变成只适合大型企业系统开发的语言和平台。
5.游戏规则(现在需要的一些语言特性)
Java提高竞争门槛
可移植性
因特网的焦点
新语言和Java之间建立桥梁很重要
开放源码
语法可亲性
杀手级应用
动态类型
快速反馈循环
纯面向对象
没有一个语言同时具有我们所寻觅的全部特色,这不让人惊讶,如果真有这样的语言,
我们早就在用它了。
6.下一个大东西(可能的竞争者)
Java或许需要的只是进厂大修,Java或许可以再维持10年的领导地位。在可见的未来,
我们将会依然与Java为伍。
或许Jason Hunter是对的,下一个大东西不会是编程语言,或许Java正是我们所需要的
一切,或许根本不会有所谓的下一个大东西,只会有许多个小东西。
我没有说Java已死,或者Ruby即将接班。
如果你是一个Java开发者且此信息让你感到困扰,这是很自然的反应。你有绝对的理由
感受到威胁,你的世界观受到挑战,你甚至可能觉得你的生存基础受到破坏。
--------------------------------分割线--------------------------------
下面是我的结尾。作者比较多的提到了Ruby,这段时间的确各种语言比较活跃,我感觉
和三四年前相比,几乎是一夜之间出现了很多可选语言,甚至如Lisp之类的老人也青春
焕发,也许这的确是一个改朝换代的标志。但我也觉得这些语言要和Java抗衡,还有很
长的路要走。不管怎么样,作为Java开发者,了解一些其他的竞争者总是好的,有助于
你对程序语言有更好的理解。说一句题外话,曾经看到一位编程大师说过,在学校里应
该学习尽可能多的程序语言,可惜在大学里我们只能学到一个派系的,大家只能靠自学
了。
你对程序语言的未来怎么看呢,我抛砖引玉了,bow~~
搜索更多相关主题的帖子:
Java 程序语言 超越 探讨