JVM救不了Java

面临应用程序网络化的发展趋势,我认为Java由于其设计架构上的弊端,在网站开发上将很难有大的作为。与此相反,以PHP为代表的动态语言则天生就适合网络的开发模式。

——Zend公司CTO Andi Gutmans

习惯和支持Java的人们,往往认为PHP和其他动态语言只属于那些不懂编程的人——即使它是LAMP(Linux+Apache+MySQL+PHP)这一盛行的开源架构中的一员,也不能保证它有什么前途。

然而,他们忽略了应用程序网络化的发展趋势,这不仅包括媒体和电子商务网站,还包括CRM、ERP、报表和文档管理等。我认为,Java由于其 设计架构上的弊端,在这些领域会有些力不从心。与此相反,以PHP为代表的动态语言正是随着上世纪90年代网络的井喷式发展而诞生的,它们天生就适合网络 的开发模式。一大批具有代表性的网站都是使用PHP进行开发的,如Wordpress、Drupal、mediaWiki、osCommerce、 SugarCRM等。

尽管很多Java厂商已经意识到网站开发的重要性,并开始努力,但它们始终都无法摆脱“强大”的语言特性带来的限制——网络开发的总体成本居高 不下。现在,Java厂商主要依靠JVM(Java虚拟机,Java的底层执行环境)来实现网络开发,它与Java配合得很好,也能够一定程度上支持多语 言。然而,这种模式并未采用LAMP的松耦合模型,而是还想保住Java原有的优势。这样,它们通常不愿意丢掉对客户工作的控制权,并经常干预JVM所支持的动态语言。

尽管对手实力不容小觑,但我坚信市场的主流并不会改变,LAMP这一开源架构将依然盛行。这是因为:首先,主要的动态语言都有强大的开发者社区 作为支持,它们坚持不懈地改进这些语言的功能,而JVM永远只能落后于这些事实上的标准;其次,由于JVM并不是专为动态语言而设计的,所以对于实际应用中不断出现的问题,Java厂商还有很多完善工作需要做;第三,现代网站开发通常需要很强的可扩展性,因此,对系统的高强度访问处理能力要求很高,这也与 JVM的设计初衷相冲突;第四,对应芯片的多核发展趋势,使用多进程模式的动态语言,比使用多线程模式的JVM具有更好的稳定性和可靠性;最后,LAMP 架构使得开发者容易入门,但同时,它也适用于雅虎和Facebook这样的大型网站。

总而言之,我认为动态语言将继续是网络开发的标准。尽管JVM对动态语言的支持会吸引一些Java客户,但它永远无法阻止开源运动的潮流。

你可能感兴趣的:(java)