当下主流JVM语言一览

译文
开发 后端 新闻
目前,JVM运行环境的大规模普及促使相关周边语言不断涌现。在本文中,我们将带大家共同指点江山、评说英杰,并关注那些正在冉冉升起的语言新星。

目前,JVM运行环境的大规模普及促使相关周边语言不断涌现。在本文中,我们将带大家共同指点江山、评说英杰,并关注那些正在冉冉升起的语言新星。

NetRexx

NetRexx可谓Java领域的脚本语言先驱者,它的诞生标志着开发人员对Java繁琐语法的***次反击。虽然以免费形式发布,但NetRexx的闭源性质最终阻碍了它的高歌猛进之势。人们清醒地意识到,IBM公司根本没有将这一项目继续深入发展或是转向开源的意图。最终,NetRexx应用如今已经近乎绝迹。

Jython (Java平台上的Python)

作为一款早期开源JVM语言,Jython(最初名为‘JPython’)原本立志成为Python抢占JVM环境的急先锋。优秀的契合效果使得大部分代码无需改动即可直接运行。然而,就在该语言即将大展身手之时,其创始人Jim Hugunin被微软挖至麾下,他自然也就把工作重点转向Python与.NET环境的结合(这就是IronPython项目)。随着创始人的离去,Jython始终未能恢复元气,并在接下来的数年中寂寂无闻。直到几年之前该项目才开始重新焕发生机,然而这时它的面前已经出现了多位相当强大的竞争对手。

Groovy

Groovy最初的定位是JSR(即Java规范请求),在经过数年的苦苦挣扎之后,原本的负责人也扔下摊子跑去搞其它项目了。而直到法国开发人员Guillaume Laforge的加入,才让Groovy重新步入正轨、拥有了规模庞大且热情高涨的支持社区,进而迸发出***的耀眼光芒。这是一款与Java本身颇为相近的语言,它的设计目的在于为开发者提供一套自助式语法解决方案,在这一点上它无疑是成功的。它同时是当下硕果仅存的两种能够从上市公司(由VMware资助,另一种是Gosu语言)处获得资助,以支持自身开发团队运营的JVM语言之一。在强大经济后盾的辅助下,Groovy的更新活动相当频繁,而且最近一次升级更是弥补了其长期以来的***缺陷:运行速度缓慢。

Scala

Scala尝试将OO(即面向对象)与功能范例二者进行协调或者整合。Scala的基本语法能够作为Java的替代品直接使用,而其中更多高级功能则可以用来编写功能性代码。随着编程人员水平的提升,如今我们已经可以方便地将代码从一套范例迁移至另一套范例(对于高端Scala开发人员而言,功能性永远是优先考虑的因素)。但它同时也存在缺憾,由于入门者与高端开发人员之间的语言理解能力差距过大,导致很多代码难以为大众所读懂。该语言内置一套Scala库,那些一直以来令开发人员头痛不已的传统并行编程问题在这里基本得到了有效解决。至于它的缺点,除了有些晦涩的代码构成之外,它所采用的编译器与本文中其它语言相比在处理速度方面实在有些孱弱;另外过去曾出现过新版本无法与旧版本相兼容的问题。

JRubyMirah

这两种语言由同一个团队所设计,二者都试图将Ruby语言引入JVM环境,语言特色也都曾经发生过转变。如今Ruby on Rails框架已经可以顺利运行于JVM之中。Ruby与Java环境之间的互操作性极为优异,而且Ruby Gems与Java库的运行都称得上简洁高效,执行结果令人赞叹。

Mirah与JRuby在功能上基本一致,只是与Ruby语言的关联性更弱一些。这就使得开发人员能够带着Mirah一个“JAR文件”走天下,而不必费神安装模拟Ruby环境所必需的大量软件包。

#p#

Gosu

由专门从事保险行业软件开发的上市企业Guidewire所支持的Gosu,具备几大令人印象深刻的能力。其中最不寻常的功能是创建出新的数据类型,并将其作为原生数据类型嵌入到语言当中。它还允许对现有类进行傻瓜式修整,因此新方案能够轻松加入当前运行环境。

Fantom

在本文中所提到的所有语言中,Fantom可谓***。它不仅能够生成Java字节码,连生成.NET中间代码与JavaScript代码也绰绰有余。从这个角度来说,它可以被视为一种通用型语言。它在设计上也相当用心:所有整数都是64位,从而消除了大量溢出问题;全部多重处理工作只由角色完成,这就有效避免了许多常见问题的发生;而且它所使用的库在设计之初就能够支持全套Unicode字符列表及字符串。从许多角度来看,Fantom的设计足可独占本篇汇总型文章的鳌头。不过它所使用的模块设计较为独特,在实际应用时需要一段时间来习惯,并且缺乏良好IDE的支持。

Clojure

Clojure是对Lisp在JVM运行环境中的再创造。尽管它自面世至今不过数年光景,但由于其精致的语法表达式、与Java的高度集成化(由于与Java使用同一套规则,Clojure在字节码编译过程中可以轻松调用Java的规则内容)以及使用社区的热情支持,Clojure已经在开发者群体中获得了极高的人气。一些专家甚至预言,Clojure将成为令函数式语言成为编程主流的决定性因素(Scala也获得了相似的评价)。

Kotlin

Kotlin是JVM家族中年纪最小的一位新成员。它从Groovy及Scala等前辈身上继承了不少优秀基因,同时还加入了一些别出心裁的原创要素。它的设计思路是提供同Java一样快捷的编译效果,并获得本地Java二进制内容的处理速度。这两大优势使其从头一个发布版起,就成为开发人员们解决编译及执行速度问题的***JVM语言。

原文链接:http://drdobbs.com/jvm/232600853?pgno=1

【编辑推荐】

  1. JetBrains开源其Kotlin语言 基于JVM的新编程语言
  2. JVM垃圾回收与性能调优总结
  3. 用JavaScript编写JVM可成功运行Java程序
  4. BicaVM:基于JavaScript的JVM-为什么呢?
  5. 深入Java,初探JVM
责任编辑:陈贻新 来源: 51CTO
相关推荐

2011-02-23 10:17:49

浏览器OperaSafari

2024-02-05 14:18:07

自然语言处理

2009-08-26 09:26:04

Visual Stud

2013-12-12 14:04:28

C编程语言

2010-10-14 16:55:00

MySQL联结查询

2017-03-06 16:34:12

虚拟个人助理

2009-03-03 20:44:06

桌面虚拟化Xendesktop虚拟化

2020-02-17 15:29:00

石墨文档

2013-10-14 15:55:30

2013-10-14 09:44:50

2011-01-11 09:53:28

linux进程

2019-04-26 14:21:34

手机色彩苹果

2010-11-15 09:55:35

Oracle转换函数

2011-01-11 10:06:14

linux进程

2023-11-08 07:45:47

Spring微服务

2021-06-08 09:47:44

Java面向对象

2017-09-06 08:12:43

OpenStack功能模块

2010-10-21 15:40:05

SQL Server服

2013-10-18 14:23:21

Ubuntu 13.1Kbuntu 13.1

2010-09-14 13:13:12

sql server备
点赞
收藏

51CTO技术栈公众号