从1995年诞生,Java便迅速成为全球最主流与应用最广泛的开发语言,其跨平台的技术优势为网络计算带来划时代变革的同时,也成为商用、搜索、游戏、移动等几乎所有软件领域开发和应用的重要选择。Java语言和平台技术所产生的影响力早已创造了编程语言的神话!
十余年过去了,Java已不再是新兴网站架构的首选语言,而关于Java正逐渐末落甚至“Java灭亡”的声音亦此起彼伏……Java时代已经过去了吗?采访人员采访了台湾 JavaTWO 技术大会 2004-2006 年专职讲师、现任松凌科技总经理的李日贵(niji ),本文观点均为李日贵提供。
王者仍为王
十余年间,大量企业采用 java 来实施网站架构,无论在整合上、分布式交易、安全控管等方面,Java系统都表现出了无与伦比的优越性。虽然Java发展越来越庞大,显得成为一种复杂的语言,但是当面对企业级各种复杂的应用时,Java仍是轻松解决各种问题的首选语言。
那么Java Will Die?“我不认为。在我看来,目前看不到可以完全取代 java 的编程语言,如同我目前看不到有什么可以完全取代英文作为世界语言一样。“李日贵说。“十余年内Java 取代了 C/C++ 成为了企业端最佳的开发语言,也许未来的开发人员会更需要知道如何与原有开发完成的 java class 进行呼叫,而不管采用什么开发语言。我从不认为现在有可以取代 java 的程序语言,除非那个语言已经有足够的组件可以完成安全性、整合性、扩充性、延展性、交易机制、I/O、数据库存取等等各种必要的组件了。”
“几乎可以想象到Sun和Java开发者在热烈地举办下一个Java十年庆祝大会。王者的挑战者永远存在,但是王者仍然是王者。”李日贵说。
Java与脚本语言
日前有调查显示新兴并具有2.0特性的网站架构已越来越倾向于使用Ruby、PHP、Perl、Python等脚本语言。实际上,Java面对的不单是这些语言的挑战,而是整个LAMP(Linux、Apache、MYSQL、PHP/Perl/Python)体系。Java是否有能力抵挡脚本语言或者说是LAMP的攻势?
李日贵认为,Web 2.0 的一个特色就是不断地推出新的服务也即永远的 Beta 版。在这种开发模式下, java 开发相对于脚本语言的确有点复杂化,加上还需要设定 Classpath、编译等动作、网页测试又没有极佳的工具、AJAX 发展初期的整合性不足够等因素,导致Java失去了 Web 2.0 先机。但Java也随技术大势做出了调整: java 平台采用了 Groovy 在标准规格书 JSR 241 定义了描述语言,也有许多如 JRuby、Jython 等可以让 Ruby 或 Python 运作在 java 平台上,以便于整合 java 已有的系统。
况且Java与脚本语言本也不是互斥,而是可以进行合作:完全可以利用Java 平台在系统整合上的优势,进行脚本语言的整合。举例来说,IBM 最新推出的 Project zero ( 零计划 ) 就是 Web 可采用 Groovy 或是 php 进行开发, 因为都是在 JVM 上运作就可以直接进行 java 的整合,( 非官方解决方案加入了 JRuby 也可以进行 Ruby 的整合),从而同时利用 java 与脚本语言两者的好处。
在SOA的大势下,脚本语言与Java的“合作”更加频繁和方便。共享标准的 WebServices 建立沟通的管道,另外加上 ESB、BPM 等等的整合性方案,前端采用快速的 Script 语言、REST 等等新兴的方案,后端复杂的企业逻辑就采用 java 来开发。因为 java 本身具有 Multi-thread 机制加上开发利用 Cache、Connection Pooling 等机制都很容易,也具有相当强的安全机制与效能表现。“或许我们也可以这样考虑:如果你面对是不断改变的需求例如表现层面操作,就应当利用脚本语言增加开发的敏捷性,如果你面对的是稳定且具有效能的需求例如逻辑方面,那么利用 java 开发应该是更方便。”李日贵说
实际上,由于Java 在企业应用地位的牢不可破,加上IBM、SUN、BEA、ORACLE 等国际大厂在Java方面持续的研发投资和推广。很多 Script 语言为取得更广泛的应用,都纷纷支持 JVM 。这也反应了Java编程语言的神话仍无法超越,毕竟家大业大,其它语言要想获得更加广阔的发展仍需要支持Java技术。
开源之于Java
SUN近来在开源方面的动作频频,当然也涉及到了Java,那么开源对 Java有什么影响,Java还能继续创造神话吗?李日贵谈了他的看法。
最早期望将Java 开源声音最大的是 IBM——早在 2004 年就由 Rod Smith 发出公开信呼吁 SUN 将 java 变成开放源代码,让更多有能力的开源社群能适时地加入适当的组件以应对来自各方的挑战。SUN 初期是摇摆不定,因为担心开源之后会导致 java 的跨平台能力消失,又担心向前兼容的特色不见。加上不断被迫要求表态去选择 “拥抱” 或 “离弃” 开放原始码社群,纵使 SUN 已经开放了 Solaris、NetBeans、JINI、OpenOffice 等产品,还是引来了很多人的攻击。
期间, Apache 又推出了 Harmony ( JavaSE ) 以 Apache License v2,终于在时代潮流的不断冲击之下,SUN在 2006 年 11 月以 GPL v2 的版权开放相关源代码,从 JavaSE、JavaME 到 JavaEE 都开源了。“至于在 java 之父 James Gosling 的告天下Java社群的公开信之中,阐明了期望保有 java 的兼容性、可靠且相互操作等特性,也说明加强测试的 TCK 让更多人愿意投入 java 底层开发并且贡献出来。”
“Java 在由Sun开放成为 Opensources 之后,这对于开发小区的发展会产生不小的影响,毕竟JVM 的确是一个了不起的平台,让我们可以忽略了许多艰深难懂的程序语言,如此一来,便可以进行更多更符合业务上的需求。”李日贵说。
此外,Java 并非没有进步,自从 JavaSE 5 Tiger 导入了 Annotation 与 Generic 等,JavaSE 6 除了加强桌面系统 swing 与 Java2D 之外,也利用 Rhino 来支持 JavaScript ,到了 JavaSE 7 Dolphin则是核心改变,利用 Dynamically Typed 整合 Script 语言更是容易,也提供了 super-package 等开发设计。
“当然,纵使SUN 不开放 java 的源代码,也会有如 IBM JDK、BEA JRockit 与 Apache Harmony 等等,但是开源之后,就可以马上反应现代社群的需求,利用广大的开源小区进行实作,最后只需要通过标准验证与测试,就可以马上释出。但是,谁能保证每个释出都真正通过标准的验证与测试呢,又谁能保证不会有 SWING vs SWT 之争,恐怕Java的开源会有一段适应期吧。”
李日贵简介:
毕业于长庚大学电机系,擅长于 java 于企业端整合与应用,与 java Opensources 的研究与推广,在 2002-2003 发行 java Opensources 电子报推广相关 java 技术,曾任台湾 JavaTWO 技术大会 2004-2006 年的专职讲师,目前为松凌科技总经理与技术杂志作者。
推荐阅读
- 为App签名的其他方法
- 其他|这款国产神器,我爱了
- 联动是智能家居未来重要的拐点(智汀家庭云带你体验跨品牌联动)
- 其他|用pywinhook或pyhook监听鼠标事件
- HomeKit和米家哪家前景更广()
- 智汀教你如何使用智汀家庭云达到场景联动效果
- 智汀家庭云+HomeKit,联手实现双生态智能家居模式
- 其他|东软始业教育结业考试 2021.12.30
- 非华为电脑多屏协同安装最新的电脑管家