9个杀手级 JVM 编程语言

Java虚拟机已经不再是仅仅局限在 Java
了,很多语言提供了脚本转换,可以让其他的程序在java虚拟机上运行,这样能够让更多的开发者能够依靠JVM在Java平台上大有作为。而且虚拟机以及
对应的字节码都是开源的,所以你也能很容易地生成对应字节码来做一款属于你自己的编程语言。我们今天来看看以下9种新的编程语言。

Groovy是一个被编译成字节码的面向对象的语言。它的语法风格与java很像,但是又没java那么混乱。Java程序员能够很快的熟练使用
Groovy;实际上,Groovy编译器是可以接受完全纯粹的Java语法格式的,这样能够让程序员在学习Groovy时不需要学习任何新语法。需要注

意使用Groovy的一个重要特点就是使用类型推断,即能够让编译器能够在程序员没有明确说明的时候推断出变量的类型。同时Groovy也提供了一个高级
架构来解决字符串处理,xml的序列化与反序列化以及单元测试等等 -- 所有的这一切好处都能为程序员节约不少时间。

JRuby是用来桥接Java与Ruby的,它是使用比Groovy更加简短的语法来编写代码,能够让每行代码执行更多的任务。就和Ruby一
样,JRuby不仅仅只提供了高级的语法格式。它同样提供了纯粹的面向对象的实现,闭包等等,而且JRuby跟Ruby自身相比多了很多基于Java类库
可以调用,虽然Ruby也有很多类库,但是在数量以及广泛性上是无法跟Java标准类库相比的。

Jython,aka
JPython,属于第一种专门为JVM专用的脚本语言。它能够用Python语言来高效生成动态编译的Java字节码。一些可选的静态编译方式能够被用
来开发applets,servlets,以及beans。作为Jython的首席程序员,Jim
Hugunin,现在已经停止了Jython的相关工作而去微软干活。所以这门语言的发展仅仅也就从2005-2008年,所以就现在看来Jython已
经无法与Groovy以及JRuby作为对手了。现在Jython可以在一些商业应用中找到,也已经得到了WebSphere Application
Server以及IMB的商业Java EE产品部门的官方支持。

Clojure是纯粹的函数式编程语言。与Scala类似,Clojure已经有很多内置的并行运行基础建设能够让很多方法同时执行。Clojure也是

被设计为生成通用语言,能够生成.NET以及JavaScript。虽然Clojure也能被直接编译成Java字节码,但是无法使用动态语言特性以及直
接调用Java类库。与其他的JVM脚本语言不一样,Clojure并不算是面向对象的。

Scala经常被我们描述为多模式的编程语言,因为它混合了来自很多编程语言的元素的特征。但无论如何它本质上还是一个纯粹的面向对象语言。它相比传统编
程语言最大的优势就是提供了很好并行编程基础框架措施了。这是唯一一个在JVM中拥有actors --
另一种并行编程代码生成器。Scala代码能很好的被优化成字节码,运行起来和原生Java一样快。

Kotlin是静态类型的语言,也可以编程成Java字节码以及JavaScript,作为一个时髦又表现丰富的编程语言,Kotlin就是被设计用来生
产高性能要求的程序的,所以运行起来和Java也是不相上下。Kotlin可以从 JetBrains InteilliJ Idea
IDE这个开发工具以插件形式使用。

Rhino是使用Java编写的开源的JavaScript引擎。当前是Mozilla公司在主导它的发展,Rhino的特点是为JavaScript加
了个壳,然后嵌入到Java中,这样能够让Java程序员直接使用。其中Rhino的JavaAdapters能够让JavaScript通过调用
Java的类来实现特定的功能。

Ceylon是一个通用的,静态类型编程语言,也是基于阻塞以及面向对象的。据说这个语言深受Java的影响,而且它一开始就是被Red
Hat公司设计为给大型团队合作完成大型项目来的。Ceylon的主要努力方向是将语言变得更加可读,更加可预期,更加工具化以及更加模块化。据
Gavin King所说,Ceylon将不仅仅只是个编译器,而将是一个可以取代Java SDK的新Ceylon SDK。

Fantom能够在运行时为JVM以及.NET或者JavaScript平台生成字节码,Fantom是与Groovy以及JRuby差不多的一样面向对

象的编程语言,但是悲剧的是Fantom无法使用Java类库,而是使用它自己扩展的类库。忘了说Fantom也包括actors,而且它最大的优势就是
在网站上有一个非常完备卓越的API文档系统。

9个杀手级 JVM 编程语言的更多相关文章

  1. junwong 9个杀手级 JVM 编程语言

    http://www.oschina.net/question/213217_45561

  2. Git的杀手级功能之 一 远程仓库

    Git的杀手级功能之一:远程仓库 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上. 一.注册GitHub账号,然后和本地Git仓库来关联免费获得Git远程仓库来学校git的远程仓 ...

  3. Python3升级3.6强力Django+杀手级xadmin打造在线教育平台☝☝☝

    Python3升级3.6强力Django+杀手级xadmin打造在线教育平台☝☝☝ 教程 Xadmin安装方法: settings.py 的配置

  4. Python3升级3.6强力Django+杀手级xadmin打造在线教育平台✍✍✍

    Python3升级3.6强力Django+杀手级xadmin打造在线教育平台 教程 Xadmin安装方法: settings.py 的配置: users App 下的 adminx.py 的配置:

  5. 强力Django+杀手级xadmin开发在线教育网站

    强力Django+杀手级xadmin开发在线教育网站采用 Python3.7全新开发 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的 ...

  6. 15个你不知道的杀手级Google Chrome功能

    之前写过一篇我为什么使用Google Chrome浏览器,算是在使用了一段时间的Google Chrome后的一点粗浅认识,最近读到一篇文章15 Killer Google Chrome Featur ...

  7. 微信4.5 for Android安卓内测版体验【实时对讲】杀手级应用下载

    微信4.5 for Android 安卓 内测版 体验 程序启动画面,是一支在动的烛光 主要功能更新如下 支持语音提醒,到时间后自动弹出消息框 发起语音提醒请求 成功识别语音请求,并且保存在本地,应该 ...

  8. JELLY技术周刊 Vol.15 云游戏会是 5G 杀手级应用么?

    蒲公英 · JELLY技术周刊 Vol.15 听到"云游戏",或许我们的第一反应会是"云玩家"而不是那些上云的"游戏",在这个 5G 已来的 ...

  9. JVM 平台上的各种语言的开发指南

    JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...

随机推荐

  1. (android高仿系列)今日头条 --新闻阅读器 (三) 完结 、总结 篇

    从写第一篇今日头条高仿系列开始,到现在已经过去了1个多月了,其实大体都做好了,就是迟迟没有放出来,因为我觉得,做这个东西也是有个过程的,我想把这个模仿中一步一步学习的过程,按照自己的思路写下来,在根据 ...

  2. Linux IP代理筛选系统(shell+proxy)

    代理的用途 其实,除了抓取国外网页需要用到IP代理外,还有很多场景会用到代理: 通过代理访问一些国外网站,绕过被某国防火墙过滤掉的网站 使用教育网的代理服务器,可以访问到大学或科研院所的内部网站资源 ...

  3. hdu3986Harry Potter and the Final Battle

    给你一个无向图,然后找出当中的最短路, 除去最短路中的随意一条边,看最糟糕的情况下, 新的图中,第一个点到末点的最短路长度是多少. 我的做法是: 首先找出最短路,然后记录路径, 再一条一条边的删, 删 ...

  4. cocos2d-x lua 内存回收

    使用cocos2d-x lua架构,游戏中存在两种内存回收方式. 1.cocos2d-x 本身内存回收 PS:假设在lua在创建一个类,继承cocos2d-x的一个类A,则该A也遵循cocos2d-x ...

  5. C嵌入汇编

    概述:linux内核源码中,有很多C语言中嵌入了汇编语句,如何理解这些汇编语句,对理解内核有很重要的作用. 具有输入和输出参数的嵌入式汇编语句的基本格式为: asm("汇编语句" ...

  6. alv 列标题

    gs_fieldcat-reptext_ddic才是显示列标题的

  7. 使用TWebBrowser时存在内存泄漏问题的解决方案(使用SetProcessWorkingSetSize函数,或者修改OleCtrls.pas源码解决问题)

    用TWebBrower不断打开多个网页,多某些版本的操作系统上运行一段时间后,发现占用系统内存达几百M,直到关闭程序后,占用的内存才能释放. 这个问题在网有很多讨论,比较多人的建议办法是用SetPro ...

  8. phabricator在mac上的搭建(转)

    环境:OS X Yosemite 10.10.5 前提:phabricator主要是由php写的,而且是以website方式运行的,所以mac上要先安装好 php + nginx(或apache) + ...

  9. Mac与Window之间的共享文件

    Mac访问Window: Finder 菜单 “前往” ,然后“连接服务器”,在服务器地址输入 smb://windows主机名或ip地址/共享名(前提window已设置共享文件) Windows访问 ...

  10. 辛星与您解读PHP页面跳转的几种实现方式

    因为页面跳转的使用是很频繁的,因此这里给出几种方式,事实上我想我并没有归纳全,毕竟函数那么多,要一下想起来还是特别麻烦的,于是,想到哪里就记到哪里把,等着以后再整理汇总. 第一种方式就是使用heade ...