JVM
(Java Virtual Machine
,Java虚拟机)
JVM
一开始就被设计成一个平台。这个平台大大简化了语言的设计者的工作。传统的语言设计者要面对的是各种CPU
, 而现在JVM
已经把各种CPU
的兼容问题都解决掉了。语言的设计者只要关心JVM
的指令即可。
下面是基于JVM
的语言与JVM
的关系:
据Java
之父James Gosling
做过的一个统计,世界上有超过8亿5千万台桌面设备启用了Java(即,至少安装了JRE), 还有100亿台具有Java功能的设备。JVM
这样一个质量好、名气大的舞台,谁会不想上去跳几步?
JVM
的垃圾回收机制、安全性以及性能是这些语言开发者看中的好处。在性能这一点上或许有待商榷, 不过自从JIT
编译技术应用在JVM
上之后, 据说其性能已经接近了C++的级别,而且JVM
还一直在优化和提升之中。
Java
语言已经被公认为是非常成功、流行的语言。但是Java语言也有很多弱点,比如编写繁琐、运行时异常导致奔溃等, 加之脚本语言、函数式编程语言的再度流行,基于JVM
的语言正在开始流行,尤其是基于JVM
的脚本语言。
过去几年间,JVM
上发展了诸如Groovy、Jython这些动态语言, 以及Scala
这样的静态语言。
在这些基于JVM
的语言中,有好几个都是专门定位于JVM
的新语言,其中以Clojure
、Groovy和Scala
为代表。 而这些语言的创始人们都不约而同的表示过自己对Java语言的厌倦与失望。
Clojure
的创始人Rick Hickey
说:“我想要一个动态的、富有表达力的、函数式的语言。”
Groovy
的创始人James Strachan
说:“Java是一种令人惊叹的复杂语言, 它的语法规范长达600页,我怀疑到底有没有人能真正理解它”。
Scala
语言的创始人Martin Odersky
则是这样描述Java语言的: “经过Pizza和GJ的经历,我有时会感到沮丧,因为Java是一个具有非常强的约束的语言。 因此,很多事情都不能像我想象的那种方式那样去做——那种我原本确信是正确的方式。 其中最强、最难以应付的是,它必须充分地向后兼容非泛型Java”。
基于JVM
的语言纷纷涌现,并被广泛应用到软件项目中,单一的Java开发已经无法满足当前复杂软件的需求,JVM
平台上的多语言混合编程正成为主流。对于Java程序员而言,技术单一化正变的危险, 因为你周围的世界已经变得复杂,混合编程时代已经到来,你准备好了吗?
常用的基于JVM
的语言有如下这些:
除了上面这些专门基于JVM
设计的语言,很多其他早已实现的语言,也能运行在JVM
上,包括如下这些: