书名:《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的,同时也列举了几个有竞争力的语言,我在这里就不累赘了。
作者应该是个“漂流”爱好者。贯穿始终的激流比喻,相当引人入胜。将漂流和工作结合,其实道理都是一个,作者站在很高的高度,思维也很清晰,并不是一时的冲动。也许,我们真该注意一下周围的变化,别坐井观天。
分享到:
相关推荐
它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其它任何一本书可以超越它。该书的作者Bruce Eckel在网络上被称为天才的投机者,作者的《Thinking in C++》在1995年曾获SoftwareDevelopment Jolt Award...
自v1.7起,感谢嵌入式Nashorn&Scripting API成为Java的一部分。 这是一个多合一的插件,这意味着,只有编写插件才能完成的所有工作都可以使用插件脚本(简单的javascript代码)完成。 而且,可以使用此工具来实现...
:books:学习是一个不断模仿,练习,创新,超越的过程,一起努力吧〜 本仓库正在不断更新,敬请期待 :glowing_star: 〜 :high_voltage: | :sparkles: | :bookmark_tabs:计算机基础 数据结构 算法 :fire: ...
本章还将介绍Java的一个有用的技 术特性—内部类。内部类可以使代码更清晰、更简洁。 第7章开始细致地讨论应用程序设计。每一个Java程序员都应该了解一些图形用户界面程序 设计的知识,本卷中包含了其中的基本内容...
这本生动的书通过趣味十足和发人深省的编程谜题揭示了Java编程语言的奇异之处。” —— GUY STEELE,Sun学者以及Java语言规范的合著者 “我笑了,我叫起来了,我赞赏地猛举起了我的手” ——TIM PEIERLS,LLC的主席...
java 8编程实战 本书全面介绍了Java 8 这个里程碑版本的新特性,包括Lambdas、流...全书分四个部分:基础知识、函数式数据处理、高效Java 8 编程和超越Java 8,清晰明了地向读者展现了一幅Java 与时俱进的现代化画卷。
本书全面介绍了Java 8 这个里程碑版本的新特性,包括Lambdas、流和函数式编程。...全书分四个部分:基础知识、函数式数据处理、高效Java 8 编程和超越Java 8,清晰明了地向读者展现了一幅Java 与时俱进的现代化画卷。
它着重于超越基础开发部署到GlassFish 4应用程序服务器的Java应用程序。本书涵盖了所有主要的Java EE 7的API,包括JSF 2.2,EJB 3.2,1.1 CDI,对于WebSocket的,JAX-WS,JAX-RS多的Java API。 书中还介绍了JSON-P...
本书全面介绍了Java 8 这个里程碑版本的新特性,包括Lambdas、流和函数式编程。...全书分四个部分:基础知识、函数式数据处理、高效Java 8 编程和超越Java 8,清晰明了地向读者展现了一幅Java 与时俱进的现代化画卷。
1.1 超越JUnit 3 1.2 JUnit 4 1.3 针对可测试性而设计 1.4 TestNG 1.5 本章小结 第2章 测试设计模式 2.1 针对失败而测试 2.2 工厂 2.3 数据驱动测试 2.4 异步测试 2.5 测试多线程代码 2.6 性能测试 2.7 模拟和桩 ...
全书分四个部分:基础知识、函数式数据处理、高效Java 8 编程和超越Java 8,清晰明了地向读者展现了一幅Java 与时俱进的现代化画卷。本书的主要内容如下: Java 8实战目录第一部分 基础知识 第1章 为什么要关心Java...
1.1 超越JUnit 3 1.2 JUnit 4 1.3 针对可测试性而设计 1.4 TestNG 1.5 本章小结 第2章 测试设计模式 2.1 针对失败而测试 2.2 工厂 2.3 数据驱动测试 2.4 异步测试 2.5 测试多线程代码 2.6 性能测试 2.7 模拟和桩 ...
《阿里巴巴Java开发手册》超越了Java语言本身,明确作为一名合格开发者应该具备的基本素质,因此本手册适合计算机相关行业的管理者和研发人员、高等院校的计算机专业师生、求职者等阅读,希望成为大家如良师益友般的...
介绍了Java 8 这个里程碑版本的新特性,包括Lambdas、流和函数式编程。有了函数式的编程 特性,可以让代码更简洁,同时也能...高效Java 8 编程和超越Java 8,清晰明了地向读者展现了一幅Java 与时俱进的现代化画卷。
资源名称:代码之美(Java版本)PDF内容简介:《代码之美》介绍了人类在一个奋斗领域中的创造性和灵活性:计算机系统的开发领域。在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定...
功能参考并集中了阿里巴巴、慧聪网、买麦网、中国化工网、第一建材网等国内知名商务网站的优点,并在某些方面超越了他们。 内容模型广泛——供应、求购、资讯、评测、展会、人才、招聘、问答等全面覆盖电子商务的...
SWFUpload是一个客户端文件上传工具,最初由Vinterwebb.se开发,它通过整合Flash与JavaScript技术为WEB开发者提供了一个具有丰富功能继而超越传统标签的文件上传模式。 编辑本段SWFUpload的主要特点 * 可以同时...
或许是无心插柳,或是有意为之,至今为止,SWT无论是在性能和外观上,都超越了SUN公司提供的AWT和SWING。目前Eclipse IDE已经开发到了2.1版本,SWT已经十分稳定。这里指的稳定应该包含两层意思: 一是指性能上的...