继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

不仅仅是Java:盘点运行在JVM下的其他9种语言

汪汪一只猫
关注TA
已关注
手记 575
粉丝 129
获赞 718

5b6d96020001fe4904280206.jpg

本文,就将带领大家盘点下,运行在Java虚拟机环境下的这些别样的语言们。我们完全有理由相信,随着JVM性能的进一步提升,这些语言必将会更加大放光彩。

1、Kotlin

5b6d96030001a4d106380345.jpg

官方站点:https://kotlinlang.org/

由JetBrains于2010年创建,并于2012年开源, Kotlin比Java更加简洁和安全。 您完全可以将Kotlin视为是一种“更加简单但高效的Java”。Kotlin的编译速度通常比Java代码快,而且在其创建之初,就非常明确的支持了函数式编程,这一点,Java是到Java 8才开始支持的。

特别的,因为有了Google的加持,越来越多的Android开发人员,开始选择Kotlin来开发应用程序,与此同时,独立的超越JVM的行动也已经在展开,通过一项名为LLVM的项目,Kotlin正在努力实现代码编译的本地化,而不在基于JVM 。

但无论如何,至少现在,它还活在JVM中。

2、Scala

5b6d960400013eb805760285.jpg

官方站点:http://www.scala-lang.org/

和Kotlin一样, Scala也是为了让Java开发人员提高工作效率而创建的。 作为一种完全的面向对象语言和一种完全的函数式编程语言,Scala巧妙的将这两种编程范式结合到了一起。

特别是在函数式编程方面,Scala几乎支持函数式编程语言中所有已知的特性,比如,模式匹配(Pattern matching)、延迟初始化(Lazy initialization)、偏函数(Partial Function)、不变性(Immutability)等等等等,

因此,虽然Scala的类Lisp的语法会让初学者倍感迷惑,但花时间在这上面,永远是值得的,很快,就会让你体会到那种只需要关注 What(做什么),而不用关注How(如何做)的酸爽。

一个最新的关于Scala的消息是,它似乎也在和Kotlin一样,在加速准备逃离JVM的控制,这对于JVM,恐怕不是一个什么特别好的消息,虽然,其距离用于生产可能还为时尚早。

3、Clojure

5b6d9605000123fb04990251.jpg

官方站点:https://clojure.org/

Clojure是由开发人员Rich Hickey在JVM下,所创建的一种Lisp方言,借助于JVM的执行效率越来越高,Clojure也常被嵌入在Java中,用于编写其中需要高并发、高性能的部分 。

4、Groovy

5b6d960500018c8106400317.jpg

官方站点:http://www.groovy-lang.org/

Groovy是在Java现有基础上,吸收Python和Ruby等动态语言的特性,而创建的一种新型语言,也是Jenkins持续集成服务器,所直接支持的语言之一,并且最关键的一点,通过基于Groovy的Web开发框架Grails,可以快速的完成相关Web项目的构建 。

在未来,Groovy则拟包含Java和JVM的一些更新的特性,比如如Java 8的lambda语法等。

5、Jython

5b6d960500016f9a04940262.jpg

官方站点:http://www.jython.org/

Jython是JVM的Python实现,与Python的2.x分支兼容,可以动态编译为Java字节码,并且可以与其他JVM语言(特别是Java)自由交互操作。

6、JRuby

5b6d960500016f7306000179.jpg

官方站点:http://jruby.org

JRuby几乎就是Jython的翻版,所不同的是,JRuby所对标的语言是Ruby,当前所支持的语法规范则和Ruby 2.3兼容。

7、Ceylon :

5b6d96060001297a03700259.jpg

官方站点:https://www.ceylon-lang.org

这个以大象为Logo的语言,其创建初衷可不是像大象一样笨拙,恰恰相反,语言的创始人 Gavin King,是出于对Java所存在问题的深刻认识,如泛型等特性的复杂性、粗劣的注解语法、不完善的块结构、对 XML 的依赖性等等,才萌生了创建一种新的静态类型语言语言,即Ceylon来一劳永逸的解决这些问题的想法。

Ceylon保留了一些好的 Java 语言特性,改进了语言的可读性和内置的模块性,还吸收了高阶函数等函数语言特性,此外,Ceylon 还融合了 C 和 Smalltalk 的一些特性。与 Java 语言一样,这种新语言也以业务计算为重点,但是它在其他领域也很灵活、很有用。并且,通过这些年的努力,Ceylon已经跨出了其自身跨平台的第一步,其代码已经可以在JVM,Dart VM或Node.js上进行编译或运行。

8、Eta

5b6d960600018dc103970360.jpg

官方站点:https://eta-lang.org/

我们的名单中怎么能少了时下最能装酷,也是被Node.js的创建者称为觉得暂无能力驾驭的语言Haskell的JVM实现?

它来了,就是Eta,它的优势,不仅仅在于它可以在JVM下执行,更在于它可以使用Haskell的软件包仓库中的软件包,最大程度的兼容了整个Haskell生态系统。

9、Haxe

5b6d96060001c8e003460260.jpg

官方站点:http://haxe.org

Haxe的口号是:One Language,Everywhere!是不是有点熟悉?是的,在非常久远的过去,这其实正是Java的初心。

但是,这二者又是如此的迥异。Java的策略是,我做一个平台JVM,给出一种规范,你们来生成我需要的代码;Haxe的策略则正好相反,既然芸芸众生,语言纷杂,每个人都各有偏好,那好,来吧,我可以把我的代码,生成任何一种你们想要的语言下的代码!

多么疯狂的想法!就为这点疯狂,就值得我们每个开发人员去膜拜一番了,毕竟,在Haxe看来,JVM,不过是其可以编译的一个“小”对象而已。

原文链接:http://www.apkbus.com/blog-873055-77893.html

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP