也许这正是 java 无奈现状的体现吧,本来是大户人家的宝贝,现在变成沦落荒野的野马,要跟荒原的狐狗抢食 …… 在桌面程序上面,出了 ibm 那么热心的开发了 eclipse 之外,似乎 java 毫无建树,而 web 上, java 更是被 .net 和其他带脚本性质的语言蚕食领地
上个月就知道 java 6 已经推出了,但还是不知道到底如何,也因为工作忙的关系没有机会去体验这个 java 6 到底有什么改变。只是知道改了个名字,从 java 5.0 的 tiger (老虎)变成了 mustang (墨西哥和北美平原的野马),呵呵,个人感觉好像是弱了,从这么猛的一个庞然大物变成了没有攻击力的野马,虽然只是名字的改变,不过从一个 java 程序员心里想来也许会觉得有点悲哀,说实话,看见这个名字,有种心有戚戚焉的感觉。
也许这正是 java 无奈现状的体现吧,本来是大户人家的宝贝,现在变成沦落荒野的野马,要跟荒原的狐狗抢食 …… 在桌面程序上面,出了 ibm 那么热心的开发了 eclipse 之外,似乎 java 毫无建树,而 web 上, java 更是被 .net 和其他带脚本性质的语言蚕食领地, .net 当然是没话说的,因为这可是大户人家的孩子,身上带着微软皇族的血统,背靠如此雄厚的资本,自然不会弱,而 php/python 等语言也以其灵活的结构和多年积累的成熟的多样的开发框架一步一步的侵食 java 的领地,我想让 java 世界最痛心的也许不是这些,而是由 ruby 语言引起的 java 世界的内讧 ……
对 ruby 这门语言,说实话,我真的不以为然,甚至觉得这不算语言。当初学习 java 的时候,是从 c 语言转过来的, java 给我的印象真的太美丽了,那么美妙的结构,竟然能如此完美的用程序语言去体现世界。而接触 ruby ,一点也没有接触 java 时候的那种感觉,但是我不得不承认 ruby on rails 真的是快捷而且方便的 web 开发平台。那么轻松的几百行代码就能够完成 java ( jsp+servlet )上千行代码(有个朋友跟我说,他尝试过将一个 java 的简单 web 程序,据说好像是网上商城,改到 ruby 平台,上 4 ~ 5 千行的 java 代码,仅仅用了 800 行 ruby 代码)。这样的结果难道还不够震撼吗?
java 语言的优美是大家公认的,但如果是为了仅有的优美而付出大量的劳动,真的必要吗?也许正如 lansa 公司的高级程序设计师 roc.chen 说的那样, java 更适合在学校里进行 oo 软件的教学,因为他真的很美丽。当年 smalltalk 也是很优美的语言,为什么还是没有流行呢?语言的流行程度也许真的跟优美有否没有直接关系,想来 vb 真的是一门很烂的语言,但如此流行,也不能不承认这个道理的正确性了。
也许改名是因为要将 java 这个重量级的语言从吃遍四方的笨重的老虎变成可以轻松跑跳的野马吧,现在 java 的世界太笨重了,有复杂的 ejb ,多种不互相兼容开发模式( tomcat/netbeansj2ee/spring 等),多个巨头在做自己不同的 ide ( eclipse /net beans/ idea/ j builders/ workshop 等),多个企业在做自己的 j2ee 服务器( geronimo /web sphere/ weblogic 等 )……意见经常不能统一,在这点上我真的认同微软的方式,这样至少使用的人能很快的上手,能更快更好的完善自己的开发模式和开发平台。
我觉得 java 已经在让自己变得轻量级,变得灵巧了,让自己在各个方面都能适应快速开发,就像现在的 ruby 一样,而 spring 的受欢迎程度和《 j2ee without ejb 》的热卖也说明了这点。也许 ruby 语言的出现对 java 来说是好事,因为至少这打击不是致命的,能让 java 的设计者痛定思痛,寻求变革。
这 java 6 mustang 的出现也许正是为了这个目的吧。那下面就说说 java 6 的特点吧:
- 支持 web service ( java web 的开发心头之痛啊,终于搞定了)
- 提高 jvm 性能,对比 java 5.0 , mustang hotspot jvm 有 58 %的性能提升(早该如此了, java 的诟病就是慢,但我还没尝试过)
- 直接嵌入 jsr-223 规定的脚本语言
- 增加对 javascript 的支持,嵌入了 rhino (即 javascript )解释器(好东西来的,也许是因为 ruby 内置的 ajax 对其的影响吧)
- 支持 jdbc 4 规范
- 扩展 java.io.file ,充分利用磁盘空间
- 安全上新增了对 xml 数字签名的支持,整合 java generic security services 及 kerberos ,支持国际域名和资源标识符和网络参数标题访问
还有好多,不过就没前面的那么重要了
(该文转载自blogjava:地址:http://www.blogjava.net/chenpengyi/archive/2006/04/02/38674.html)
闽公网安备 35060202000074号