编者注:本文摘自一位美国开发者的博客,作者Nirav观察到Java世界一些有趣的变化,单一的Java开发已经无法满足当前软件复杂的需求,越来越多基于JVM的语言开发被应用到软件项目中,Java平台上的多语言混合编程正成为主流。
基于JVM的语言正在开始流行,这为Java平台上多语言混合编程的发展提供了技术基础;在实际应用中,每种语言都可以针对自己擅长的方面更好的解决问题;日趋复杂的软件需求也使得混合编程的应用场景更加频繁。对于Java程序员而言,技术单一化正变的危险,因为你周围的世界已经变得复杂;混合编程时代已经到来,你准备好了吗?
最近几年,基于JVM平台在编程语言方面发生了巨大的变化。比如动态语言(如:Javascript,Jruby,Jython,Groovy)和函数式与面向对象兼具的Scala等。我很高兴我们现在有很多选择,到目前为止,我不认为某个单一语言可以像之前的Java一样独占JVM。
在某种程度上,JVM上出现多种语言共存是件好事,一个工具不可能适用所有需求。我们不能指望Java在GUI方面足够好;就像C语言一样,Java从来都不是为了开发动态Web应用而设计的,但我们还是尝试使用JSP、JSF和大量的框架来对抗PHP、Rails和Python在Web上的生产力。好在Java对平台细节和内存管理的抽象层次足够高。这些基于JVM的新语言在各自的领域内也随之可以更进一步的抽象。
JVM上的语言百花齐放
在不远的未来我们将会看到,我们的项目中,并行进程用Clojure编写,展示层使用Jruby/Rails,中间层是Java。每个应用层都将使用不同的编程语言实施,然而,接口对每一层的开发者都是透明的。这是个大事,客户端和服务器将使用不同的运行时和编程语言,在之前的Java平台上前所未有。
这对于Java开发者意味这什么呢?
◆对于Web开发者而言,你将要学习很多与Struts、JSF、JSP不同的东西,我们的开发不再是model1、model2和MVC。
◆对于非Web开发者而言,你所写的代码可读性将更强,并且可以采用上面所提到的任何一种语言来打造适合你项目的DSL;而且,你无需担心偶尔的复杂性以及框架会影响到你的项目。
Java平台开发者的生活(或履历)将会改变,他们将兴奋于现在不只一种编程语言可以使用,而不是只有框架。我从来不认为Java语言将走向灭亡,不是因为现存的大量API库是使用Java编写的,而是因为地球上知道Java的程序员太多了。工具支持Java、本地JVM支持Java。Java会像C语言一样,你能做的任何事都将被潜在的支持,成为一个基础平台。