书名:《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...
《超越 Java》是一本探讨Java技术发展以及程序员如何在不断变化的软件开发环境中提升技能的书籍。这本书以CHM(Microsoft Compiled HTML Help)格式呈现,是电子文档的一种常见形式,通常用于技术手册和教程。 在...
自v1.7起,感谢嵌入式Nashorn&Scripting API成为Java的一部分。 这是一个多合一的插件,这意味着,只有编写插件才能完成的所有工作都可以使用插件脚本(简单的javascript代码)完成。 而且,可以使用此工具来实现...
《Java Filthy Rich Clients》是一本专为Java开发者设计的书籍,旨在帮助他们构建富客户端应用,即那些具有丰富用户界面(UI)和高度交互性的应用程序。这本书通过一系列经典实例,深入浅出地展示了如何利用Java平台...
Android Zirco-browser是针对这一需求应运而生的一款开源浏览器,它声称在性能上超越了知名的海豚浏览器。本文将深入探讨这款浏览器的核心技术、设计思想以及开源的优势,帮助开发者理解其背后的实现机制。 首先,...
本篇文章将聚焦于Zirco-browser,一个旨在超越海豚浏览器的开源项目,通过分析其源码,我们可以从中汲取到丰富的JAVA ANDROID开发知识,对于毕业设计和代码学习有着极高的价值。 Zirco-browser是一款基于Java语言...
“尽在双11:阿里巴巴技术演技与超越”这本书籍,聚焦于阿里巴巴每年一度的双十一购物节背后的技术挑战和解决方案。双十一作为全球最大的在线购物活动,其背后的技术支持需要应对海量并发、数据处理、系统稳定性等...
【标题】:“安卓开发-Zirco-browser:超越海豚的开源浏览器” 【描述】:Zirco-browser是一款专为Android平台设计的开源浏览器,旨在提供比海豚浏览器更优秀的用户体验和更高的性能。作为开发者,你可以深入研究其...
:books:学习是一个不断模仿,练习,创新,超越的过程,一起努力吧〜 本仓库正在不断更新,敬请期待 :glowing_star: 〜 :high_voltage: | :sparkles: | :bookmark_tabs:计算机基础 数据结构 算法 :fire: ...
《关于工作的书:不要只做我告诉你的事》是一本旨在提升个人职业素养与自主性的书籍。这本书的核心理念是鼓励读者超越单纯的执行命令,而是要学会思考、主动创新,以更全面的角度来理解和完成工作任务。这一理念在...
本项目聚焦于Android应用源码,特别是Zirco-browser,一个旨在超越海豚浏览器的开源浏览器项目。这款浏览器的源码对于Android开发的学习者和毕业设计学生具有极高的参考价值。 1. **Zirco-browser概述** Zirco-...
【Java完整功能记事本】是一款由个人独立开发的文本编辑器,其设计目标是复刻并超越Windows系统内置的记事本程序。这个项目展示了Java编程语言在创建桌面应用程序方面的强大能力,同时也体现了开发者对软件工程的...
这个项目是一个基于Java编程语言实现的记事本软件,其设计灵感来源于知名的在线笔记应用——有道云笔记。与传统的Windows记事本相比,它提供了更为丰富和现代的功能,旨在提供一个类似于云笔记的用户体验。这种定制...
Zirco-browser是一款基于Android平台的开源浏览器,旨在提供一个高效、安全且可自定义的浏览体验,其目标是超越市场上的商业浏览器,如海豚浏览器。通过对Zirco-browser的源码进行深入分析,我们可以了解到许多关于...
- **扩展功能**:JavaApp的一个关键特性是它可能超越了C预处理器的功能,比如支持自定义的预处理指令或更高级的代码分析和处理。 2. **工作原理**: JavaApp作为一个独立的应用程序,它在编译Java代码之前先对...
首先介绍基础知识,然后是函数式数据处理,接着讨论如何编写高效Java 8代码,最后展望超越Java 8的未来趋势。 6. **读者群体**:本书面向广泛的Java开发人员,无论新手还是经验丰富的开发者,都可以从中受益,特别...
### 关于《Real World Java EE Patterns: Rethinking Best Practices》的重要知识点 #### 一、简介与背景 ...这本书对于希望深入了解Java EE架构和设计模式的专业人士来说,是一本非常有价值的参考书。