论坛首页 Java企业应用论坛

推荐一本书:《超越Java》

浏览 5945 次
精华帖 (4) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-04-06   最后修改:2010-10-16

书名:《Beyond Java》

中文译名:《超越Java》

作者:Bruce A.Tate

出版社:O'Reilly授权东南大学出版

 

偶遇这本书是我在图书馆无意溜达时发现的,当时我记得在找一本《UML精粹》,找了半天找不到,倒是在一个很偏僻的角落里发现这本书,当时看到书名:《超越Java》,我立即被震慑住了,马上看了一下目录(我看书首先要看目录十分钟),发现作者是站在一个很高的高度来审视Java和其他语言,举出Java的优点,它为什么会成功,它的缺点,还有其他语言要超过Java必须要具备的条件,像Ruby,Python,Perl,PHP等等。我学习Java时间不算很长,也才一年,没写过什么大型的企业应用,像分布式什么的,只是用JSP/Servlet做过一个小型购物系统,甚至我连SSH都还只是处于了解阶段。但是这并不能阻碍我看这本书的热情,前前后后我花了差不多一天时间看完,其中涉及ROR,延续服务器我都是似懂非懂。我感觉Java确实在走下坡路,试想一下,如果你只是会Java这门语言你基本上干不了任何有意义的事情,J2EE这块更是有JSP,Servlet,Tomcat,XML,EJB,还有那一堆框架。我之所以到现在都没学SSH都是因为我不想在这上面花费太多的时间。如果我只是构建一个小型企业应用,我学那些东西真的算是白费力气了。就像CSDN的书评:学过spring的人如果再去学ruby就能深刻的体会到这点, 作者敏锐的指出了目前java遇到的一些不可逾越的问题以及下一个流行的语言到底应该具备那些最基本的特点并且概述了几个目前有可能成为java挑战者的候选语言. 重点在讲ruby,有兴趣研究ruby而又对ruby心存疑惑的朋友不妨先买这本书看看,作为一个过度。

也许当我学过SSH后我对这本书会更有触动,但是现在不妨让我用自己的语言来描绘一下这本书,花了我一个下午的时间,希望大家投个精华,呵呵。

猫头鹰与鸵鸟

在Java的鼎盛时期,忽略其他语言可以给我们带来生产力,但是当Java开始走下坡路的时候,你不得不开始审视周围了,不管你是猫头鹰还是鸵鸟,为了自己不被淘汰,只有随时注意身边的危险。复杂的问题会驱动更高的抽象,语言的发展就是这样的,复杂的河流会泛滥,驱使我们采用新的抽象,越早越好。当我们用Java感到力不从心的时候,感到越简单的事情变得越复杂的时候,我们是不是该审视一下周围,看看还有没有更好解决问题的方式。

完美的风暴

Java的出现不是偶然,它是有很多因素聚结在一起,就像暴风雨的形成,必须要有乌云,闪电,还有风。。

创新来自需求,当我们遇到某个东西差不多合用时,我们就不会想要去改变它,直到它变得不适合为止。

助使Java成功的原因大概有以下几点:

因特网,Java正好赶上了。

面向对象,当时OO语言可是热门。

C++的经验,像指针运算,嵌套引用,字符串,DLL,继承,可移植性,这些都是C++程序员转向Java的理由。

这些因素触发了暴风雨,Java可以算得上是一场完美的风暴。

皇冠上的宝石

什么东西让Java流行?是哪些不可或缺的技术让Java成功的?

可移植性,JVM是Java技术最大的财富,虚拟机不是SUN发明的,但是却是靠SUN流行起来的。与此类似的还有垃圾收集和反射。

安全,语言和JVM的设计保证了Java具有很好的安全,程序是在JVM里的沙箱运行的,SUN提供了很好的安全机制,包括语言中没有指针运算,且运行时的强类型检查。

因特网,Java是靠网络才发扬光大的,这点大家都知道。

企业支持,SUN虽然是Java的发明者,但是背后最大的支持其实是IBM这个绿色巨人。

社区,社区力量正是Java皇冠上的珠宝。

开放源代码,让我们看看一下这些工具:Ant,JUnit,Tomcat,Struts,Lucene,Tapestry,Spring,Hibernate等等。这些开放源码软件对于业界产生了很大的冲击,你如果是一个Java程序员,敢说你没有用到这其中的一种?

打破玻璃

让我们来看看Java的缺点:

java的学习曲线已经太陡峭了,要想用Java做一点有用的事,必须要学很多技术。

Java在web方面没有更好的生产力,比起PHP,ROR来,在小中型企业应用来说,J2EE并不一定是最好的选择。

对XML处理来说,有比Java更好的方法,XML需要字符串的解析和处理,而Java在这方面实在太愚拙。
Java不是很适合XP,Java不是最简单的语言,对于极短周期的开发也不适合。

编译期异常与类型检查可以提高安全性,但是让时间和语法的成本增加。

Java不适合表现结构性的数据,这使得Java过度依赖XML,因此造成额外的复杂度和体积暴增。

Java的许多折中,像基本类型,让Java更不好学习,更不好写。

Java比C++动态,但是远比不上Smalltalk以及Ruby的动态。Java在元编程方面比不上Ruby。

Java比其他直译式的语言、动态的语言,编译和部署周期更长。

Java的抽象工具相当贫瘠,抽象并非Java第一类功能。没有参考参数;没有关键字;没有默认参数;没有析构绑定或者平行赋值;没有办法有效率的返回多个值;没有延续;没有用户定义的运算符;没有生成器;没有程序代码字句;没有数组。

Java是静态语言,这就决定了它不可能有动态语言的优点。

还有很多。。。

游戏规则

Java空前提高了语言的准则,作者在这一章列举了Java所建的语言门槛,后面的语言要想超越Java,必须首先具备这些条件,但这还不够,它还必须具有其他的特色。

Java所见的语言门槛:

JVM/CLR    在JVM内运行,在自己的虚拟机内运行

焦点在因特网上    支持因特网应用程序

因特网用户界面    允许丰富的因特网用户界面

服务层    提供和Java整合的SOA风格

Web service    允许某些种类的Web service

XML    提供丰富且具有生产力的XML API

 

新语言必须具备的企业特色:

数据库访问API    提供简介、具有生产力的API以进行数据库访问

关系数据库    先把焦点放在关系数据库上

数据库性能    和数据库的交互必须很快

事务    能够进行应用事务的划分

语言安全    提供简洁的基础,以进行语言的安全保护

应用程序安全    让开发者保护他们自己应用程序的安全

安全整合    让开发者整合企业安全,特别是针对因特网应用程序

 

成为Java接班者最好要具备的重要语言特色:

动态类型     支持动态类型以提高生产力

快速反馈     减少“改变程序代码”到“看到运行结果”之间的时间差

用户界面焦点    提供了高生产力、丰富的环境以建立用户界面

动态类模型    提高发现并改变部分类和运行时的能力

真正的OOP    提供概念纯净的没有基本类型且所有的对象都有单根的OOP实践版本

一致且整洁    语言应该鼓励程序代码干净并且易维护

延续    语言应该支持较高的抽象性、像延续

 

后面的几章都是介绍Ruby的,同时也列举了几个有竞争力的语言,我在这里就不累赘了。

作者应该是个“漂流”爱好者。贯穿始终的激流比喻,相当引人入胜。将漂流和工作结合,其实道理都是一个,作者站在很高的高度,思维也很清晰,并不是一时的冲动。也许,我们真该注意一下周围的变化,别坐井观天。

   发表时间:2009-04-06  
这本书是要看的!
0 请登录后投票
   发表时间:2009-04-06  
脑袋雷劈的 写道

这本书是要看的!

嗯,呵呵
0 请登录后投票
   发表时间:2009-04-06  
去年就看过了,适合给java程序员洗洗脑:)
0 请登录后投票
   发表时间:2009-04-06  
在这个敏感时期,什么风吹草动都影响我对java的信心.虽然我认为java至少还能主流很长一段时间.
0 请登录后投票
   发表时间:2009-04-07  
这书也太古老了
0 请登录后投票
   发表时间:2009-04-07  
本不可比!


1.中小企业

j2ee rails不可比

j2ee是规范 不是产品不是框架 rails是什么??

一个小企业,可以找个高手封装ssh,开发的人只要了解业务,会写crud就可以用了ssh不知道ssh,也可以做到,还可以用swing做开发工具直接配置,我遇到这样的java公司


2.大企业

比如金融 电信行业


呵呵 ,自己想想会怎么样

我觉得

ruby rails只是昙花一现 不可能是未来的java

未来是什么?

很难想像

计算机软件 发展到一个瓶颈期了,特别是中国

确实 java目前入门比较难

但是一个大学合格本科生,培训2个月绝对搞定ssh

什么ssh

熟悉java 的oo 熟悉计算机网络通信 servlet还不是小菜 sevlet熟悉 jsp不就是,,,,

servlet jsp搞定 一切皆简单了
0 请登录后投票
   发表时间:2009-04-07  
一个java项目组有40人 这样项目如果rails做

会怎么样,我不敢想象!


如果是一般中小web系统 网站 mis

rails 等1,2个高手做,没有问题

但是 中国又不需要 那样多高手


迷茫,迷茫

不过 熟悉j2ee  ssh
去搞rails一个不是什么难度

但是 直接 毕业搞 rails 估计以后会疯掉

不知道 通信 请求 效率要考虑 不知道 数据库访问要考虑数据量等等
0 请登录后投票
   发表时间:2009-04-07  
企业支持,SUN虽然是Java的发明者,但是背后最大的支持其实是IBM这个绿色巨人
-------------------------------------------------------
变色拉
0 请登录后投票
   发表时间:2009-04-07  
smalljeff 写道
企业支持,SUN虽然是Java的发明者,但是背后最大的支持其实是IBM这个绿色巨人
-------------------------------------------------------
变色拉

不好意思,貌似是蓝色巨人吧?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics