查看文章
 
超越Java -- 探讨程序语言的未来
2008-06-19 13:24
鱼鱼多媒体日记本

刚刚看完一本"Beyond Java"的书,中文名叫《超越Java》,深入探讨了程序语言的未来,对于其中一些见解,我感觉受益匪浅,于是决定写一篇读书笔记与大家分享。

Java依然是我最钟爱的语言,同样也是作者到目前最钟爱的语言,可以想象作者要在书中批判Java是多么痛苦的事,但是世间没有任何东西可以永恒维持。作者的畅销书"Better, 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成了Java一飞冲天的跳板。
JVM具有空前的可移植性。
Java用沙箱限制了应用程序的破坏性。
即使在今天,我还是认为applet代表一种很好的构想,但是浏览器版本问题限制了applet。
行业标准和开放源代码,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,你就更能尊重Sun的观点。
Java变成只适合大型企业系统开发的语言和平台。


5. 游戏规则(现在需要的一些语言特性)

Java提高竞争门槛
可移植性
因特网的焦点
新语言和Java之间建立桥梁很重要
开放源码
语法可亲性
杀手级应用
动态类型
快速反馈循环
纯面向对象
没有一个语言同时具有我们所寻觅的全部特色,这不让人惊讶,如果真有这样的语言,我们早就在用它了。


6. 下一个大东西(可能的竞争者)

Java或许需要的只是进厂大修,Java或许可以再维持10年的领导地位。在可见的未来,我们将会依然与Java为伍。
或许Jason Hunter是对的,下一个大东西不会是编程语言,或许Java正是我们所需要的一切,或许根本不会有所谓的下一个大东西,只会有许多个小东西。
我没有说Java已死,或者Ruby即将接班。
如果你是一个Java开发者且此信息让你感到困扰,这是很自然的反应。你有绝对的理由感受到威胁,你的世界观受到挑战,你甚至可能觉得你的生存基础受到破坏。


-------------------------------------------------------------分割线-------------------------------------------------------------


下面是我的结尾。作者比较多的提到了Ruby,这段时间的确各种语言比较活跃,我感觉和三四年前相比,几乎是一夜之间出现了很多可选语言,甚至如Lisp之类的老人也青春焕发,也许这的确是一个改朝换代的标志。但我也觉得这些语言要和Java抗衡,还有很长的路要走。不管怎么样,作为Java开发者,了解一些其他的竞争者总是好的,有助于你对程序语言有更好的理解。说一句题外话,曾经看到一位编程大师说过,在学校里应该学习尽可能多的程序语言,可惜在大学里我们只能学到一个派系的,大家只能靠自学了。


类别:Programming||添加到搜藏 |分享到i贴吧|浏览(619)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu