9个杀手级 JVM 编程语言
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标准类库相比的。
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 编程语言的更多相关文章
- junwong 9个杀手级 JVM 编程语言
http://www.oschina.net/question/213217_45561
- Git的杀手级功能之 一 远程仓库
Git的杀手级功能之一:远程仓库 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上. 一.注册GitHub账号,然后和本地Git仓库来关联免费获得Git远程仓库来学校git的远程仓 ...
- Python3升级3.6强力Django+杀手级xadmin打造在线教育平台☝☝☝
Python3升级3.6强力Django+杀手级xadmin打造在线教育平台☝☝☝ 教程 Xadmin安装方法: settings.py 的配置
- Python3升级3.6强力Django+杀手级xadmin打造在线教育平台✍✍✍
Python3升级3.6强力Django+杀手级xadmin打造在线教育平台 教程 Xadmin安装方法: settings.py 的配置: users App 下的 adminx.py 的配置:
- 强力Django+杀手级xadmin开发在线教育网站
强力Django+杀手级xadmin开发在线教育网站采用 Python3.7全新开发 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的 ...
- 15个你不知道的杀手级Google Chrome功能
之前写过一篇我为什么使用Google Chrome浏览器,算是在使用了一段时间的Google Chrome后的一点粗浅认识,最近读到一篇文章15 Killer Google Chrome Featur ...
- 微信4.5 for Android安卓内测版体验【实时对讲】杀手级应用下载
微信4.5 for Android 安卓 内测版 体验 程序启动画面,是一支在动的烛光 主要功能更新如下 支持语音提醒,到时间后自动弹出消息框 发起语音提醒请求 成功识别语音请求,并且保存在本地,应该 ...
- JELLY技术周刊 Vol.15 云游戏会是 5G 杀手级应用么?
蒲公英 · JELLY技术周刊 Vol.15 听到"云游戏",或许我们的第一反应会是"云玩家"而不是那些上云的"游戏",在这个 5G 已来的 ...
- JVM 平台上的各种语言的开发指南
JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...
随机推荐
- 试解析Tomcat运行原理(一)--- socket通讯(转)
关于这篇文章也确实筹划了很久,今天决定开篇写第一篇,说起tomcat首先很容易联想到IIS,因为我最开始使用的就是.net技术,我第一次使用asp写学生成绩管理系统后,很茫然如何让别人都能看到或者说使 ...
- 1.1-学习Opencv与MFC混合编程之---利用画图函数,生成视频,并写入视频文件
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961674 写视频文件 Ø 新建菜单项,Learning OpenCV——> OpenCVr ...
- 【Demo 0009】Android 组件(BroadcastReceiver)
本章学习要点: 1. 了解Broadcast的作用; 2. 掌握自定义广播和系统广播的接收: 3. 掌握广播的发送:
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 【Android】 -- 使用UncaughtExceptionHandler捕捉全局异常
在综合统计SDK(欧盟统计局的朋友,百度统计)之后.有一个非常有利的功能测试:错误分析.此功能可以在程序的执行中遇到崩溃(runtimeException)反馈给server,帮助开发者提高产品.多功 ...
- openstack中Nova组件images的全部python API 汇总
感谢朋友支持本博客.欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免.欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...
- GetCursorPos/WindowFromPoint/SendMessage
GetCursorPos/WindowFromPoint/SendMessage (用API函数向Edit框发送字符) GetCursorPos(mPoint); DTWND:=WindowFromP ...
- 使用visual c++ 2005编译64位可执行文件
最近需要将一个32位的程序移植到64位上,由于原来是使用vs2003写的,vs2003本身并不支持编译64位系统上,只能升级到vs2005以上版本.个人还是比较喜欢vs2005,对c++来说,vs20 ...
- 【Demo 0004】Java基础-类封装性
本章学习要点: 1. Java封装特性; 2. 掌握类的定义: 3. 掌握类的调用方法; 一.封装特性 Java 纯面向对象语言,面向对象语言遵 ...
- HOW TO: How to import UUID function into Postgre 9.3
1. Open a command console and go to the directory where you installed Postgre server. e.g. D:\Progra ...