基于JVM的语言正在开始流行
2009-03-26 10:41
429 查看
总结:
这是 Reuven Lerner在去年写的一篇博文,文章主要介绍了一些新兴的基于JVM的脚本语言。结合本文可以对Bruce的博文《C++和JAVA传统中积极的一面》有一个很好的理解。译者认为:语言始终都是一门工具,软件设计最重要的东西是来自于设计者的创造性,但是随着Java语言的出现,他的半动态的特性,ClassLoader,反射,动态代理,都是提高开发者创造性的前提,正是因为这些特性,才会出现新的的编程模式和范式——反转控制和依赖注入,面向方面的编程(AOP)。试想如果Java不提供ClassLoader,反射,动态代理机制的API,如何能实现依赖查找和依赖注入和动态AOP? 你能用C++来反转控制,依赖查找吗,能对容器中的组件做进行生命周期管理吗?为了说明程序员创造性和语言的这个关系,我引用Dion Hinchcliffe博文中的一张图来说明:
原文:http://ostatic.com/blog/jvm-based-languages-grow-in-popularity
基于JVM的语言正在开始流行
当Sun Microsystems公司在1995年第一次揭开Java的面纱的时候,就是非常难被定义的。这是因为JAVA是由多个部分构成:首先,它当然是一个面向对象语言。同时JAVA也是一个定义标准的语言(或多个标准,包括移动设备,标准,和企业三个版本)。最后,Java是一个虚拟机(“JVM”),一个Java程序能够执行的软件环境。如果你有一个JVM,虽然这个JVM只能用来运行Java的程序——但是,JVM能在运行在你能想到的每一个平台之上,这使得Java成为一个具有高移植性的语言。
在Java世界的一个令人着迷的趋势就是:在最近的几年里使用JVM来运行非Java的程序在程增长的趋势。毕竟,如果创造了一门新的语言,你就必须在特定的平台上实现它。如果你想你的语言能在不同的平台上移植,那么你就需要为每一个平台实现一个版本。但是,相比而言,如果你将语言实现在JVM上,那么你就能让你的语言运行在任何系统的JVM上,这就意味着几乎所有平台都可以运行。
于是现在就有了许多的基于JVM的新增语言。其中4个最流行的是发布在开源许可证之下的。考虑到如今Java也是开发源码了,这意味着你可以使用一个全开源体系,并且这个体系是可以移植的。因为这些语言都在JVM之上实现的,所以你就可以同时访问Java的标准库。这意味着如果有一个第三方的的Java库,而且你精于Python,那么你就可以使用Jython在你的源代码中访问这些Java库。
早期的基于JVM的脚本语言,就我所知,是Jython,之前被称为JPython。Jython,从名字你就可以猜到,是一个基于JVM的Python语言实现。Jython完全兼容Python2.2的标准版本(这个标准版本的Python也被称为CPython),这意味着Jython将会没有Python的一些新特性。最近发布的Jython版本是2007年月发布的,但是Sun雇佣了两位早期Jython非常知名的开发者,并且现在Jython可以运行Django应用程序框架,因此验证其兼容Python的能力
Sun公司同时资助了JRuby的开发,一个基于JVM的Ruby版本。Jython是Python唯一的两个实现的其中之一,对比而言,JRuby则是众多Ruby语言实现的其中之一。然而,JRuby被广泛的认为是一个非常重要的版本。特别是因为他的效率,和高度兼容标准C的Ruby版本实现。JRuby同样可以运行Ruby on Rails框架(译者注:构建在Ruby之上的WEB应用框架),此外还能运行其他众多的功能。
Jython和JRuby都是从其他已存在的语言中移植到JVM中来的。而全新的基于JVM的脚本语言是Groovy和Scala。这两门语言现在都越来越流行,不同的是,Groovy是动态脚本语言,而是Scala是静态语言。使用Groovy最著名的应用是Groovy on Grails项目,一个用Groovy写成,运行在JVM之上的WEB应用框架(和Ruby on Rails很相似)。Grails找到通向商业应用程序的道路,最著名的就是LinkedIn,使用Linkedin,开发人员发现他们能比直接使用Java更快速和容易的开发程序。相比而言,Scala,而是强类型是语言,Steve Yegge最近的一次访谈中曾经谈到、静态语言和动态语言的争论,因为这个他还受到了很多的批评(译者注:关于Steve Yegge的这篇关于动态语言和静态语言之争可以查看这里,Steve Yegge是一个动态语言的支持者)
Java已经被公认为是非常成功而流行的语言。现在,Java也同时也被认为是非常流行的平台,这四类语言仅仅是在不远的将来通过JVM来实现的新兴语言的开始
关注CoolShell微信公众账号可以在手机端搜索文章
(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)
——=== 访问 酷壳404页面 寻找遗失儿童。 ===——
从LongAdder看更高效的无锁实现
Java中的CopyOnWrite容器
面向GC的Java编程
C++的坑真的多吗?
程序员眼中的编程语言
Resin服务器getResource揭秘
(3 人打了分,平均分: 3.67 )
Loading...
这是 Reuven Lerner在去年写的一篇博文,文章主要介绍了一些新兴的基于JVM的脚本语言。结合本文可以对Bruce的博文《C++和JAVA传统中积极的一面》有一个很好的理解。译者认为:语言始终都是一门工具,软件设计最重要的东西是来自于设计者的创造性,但是随着Java语言的出现,他的半动态的特性,ClassLoader,反射,动态代理,都是提高开发者创造性的前提,正是因为这些特性,才会出现新的的编程模式和范式——反转控制和依赖注入,面向方面的编程(AOP)。试想如果Java不提供ClassLoader,反射,动态代理机制的API,如何能实现依赖查找和依赖注入和动态AOP? 你能用C++来反转控制,依赖查找吗,能对容器中的组件做进行生命周期管理吗?为了说明程序员创造性和语言的这个关系,我引用Dion Hinchcliffe博文中的一张图来说明:
原文:http://ostatic.com/blog/jvm-based-languages-grow-in-popularity
基于JVM的语言正在开始流行
当Sun Microsystems公司在1995年第一次揭开Java的面纱的时候,就是非常难被定义的。这是因为JAVA是由多个部分构成:首先,它当然是一个面向对象语言。同时JAVA也是一个定义标准的语言(或多个标准,包括移动设备,标准,和企业三个版本)。最后,Java是一个虚拟机(“JVM”),一个Java程序能够执行的软件环境。如果你有一个JVM,虽然这个JVM只能用来运行Java的程序——但是,JVM能在运行在你能想到的每一个平台之上,这使得Java成为一个具有高移植性的语言。
在Java世界的一个令人着迷的趋势就是:在最近的几年里使用JVM来运行非Java的程序在程增长的趋势。毕竟,如果创造了一门新的语言,你就必须在特定的平台上实现它。如果你想你的语言能在不同的平台上移植,那么你就需要为每一个平台实现一个版本。但是,相比而言,如果你将语言实现在JVM上,那么你就能让你的语言运行在任何系统的JVM上,这就意味着几乎所有平台都可以运行。
于是现在就有了许多的基于JVM的新增语言。其中4个最流行的是发布在开源许可证之下的。考虑到如今Java也是开发源码了,这意味着你可以使用一个全开源体系,并且这个体系是可以移植的。因为这些语言都在JVM之上实现的,所以你就可以同时访问Java的标准库。这意味着如果有一个第三方的的Java库,而且你精于Python,那么你就可以使用Jython在你的源代码中访问这些Java库。
早期的基于JVM的脚本语言,就我所知,是Jython,之前被称为JPython。Jython,从名字你就可以猜到,是一个基于JVM的Python语言实现。Jython完全兼容Python2.2的标准版本(这个标准版本的Python也被称为CPython),这意味着Jython将会没有Python的一些新特性。最近发布的Jython版本是2007年月发布的,但是Sun雇佣了两位早期Jython非常知名的开发者,并且现在Jython可以运行Django应用程序框架,因此验证其兼容Python的能力
Sun公司同时资助了JRuby的开发,一个基于JVM的Ruby版本。Jython是Python唯一的两个实现的其中之一,对比而言,JRuby则是众多Ruby语言实现的其中之一。然而,JRuby被广泛的认为是一个非常重要的版本。特别是因为他的效率,和高度兼容标准C的Ruby版本实现。JRuby同样可以运行Ruby on Rails框架(译者注:构建在Ruby之上的WEB应用框架),此外还能运行其他众多的功能。
Jython和JRuby都是从其他已存在的语言中移植到JVM中来的。而全新的基于JVM的脚本语言是Groovy和Scala。这两门语言现在都越来越流行,不同的是,Groovy是动态脚本语言,而是Scala是静态语言。使用Groovy最著名的应用是Groovy on Grails项目,一个用Groovy写成,运行在JVM之上的WEB应用框架(和Ruby on Rails很相似)。Grails找到通向商业应用程序的道路,最著名的就是LinkedIn,使用Linkedin,开发人员发现他们能比直接使用Java更快速和容易的开发程序。相比而言,Scala,而是强类型是语言,Steve Yegge最近的一次访谈中曾经谈到、静态语言和动态语言的争论,因为这个他还受到了很多的批评(译者注:关于Steve Yegge的这篇关于动态语言和静态语言之争可以查看这里,Steve Yegge是一个动态语言的支持者)
Java已经被公认为是非常成功而流行的语言。现在,Java也同时也被认为是非常流行的平台,这四类语言仅仅是在不远的将来通过JVM来实现的新兴语言的开始
关注CoolShell微信公众账号可以在手机端搜索文章
(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)
——=== 访问 酷壳404页面 寻找遗失儿童。 ===——
相关文章
从LongAdder看更高效的无锁实现
Java中的CopyOnWrite容器
面向GC的Java编程
C++的坑真的多吗?
程序员眼中的编程语言
Resin服务器getResource揭秘
(3 人打了分,平均分: 3.67 )
Loading...
相关文章推荐
- 基于JVM的语言正在开始流行
- 基于JVM的语言正在开始流行
- 基于JVM的语言正在开始流行
- 基于JVM的动态语言Groovy MetaProgramming 知识集
- 一个基于JVM的脚本语言 -- OrangeScript
- 基于JVM 的敏捷开发语言-Groovy 1.0 发布
- 五大基于JVM的脚本语言
- Frege-基于JVM的类Haskell纯函数式编程语言
- 基于JVM的语言Scala,多核试验程序,8核全部跑满
- java环境中基于jvm的两大语言:scala,groovy
- 基于JVM的动态语言Groovy 基础知识汇总
- JAVA虚拟机(JVM)和JAVA垃圾回收机制(JAVA GARBAGE COLLECTION)---因为刚开始学习,有部分语言不太准确,请指出,谢谢!
- 从零开始开发JVM语言(八)从类型定义开始的语义分析
- GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。
- groovy 简介(基于JVM的脚本语言)
- Go语言基于Socket编写服务器端与客户端通信的实例
- 基于Java语言的安卓编程学习之六Activity的切换
- JVM的内存模型,(GC)垃圾处理,调优监控(基于HotSpot VM,JDK1.5+)【JAVA内存模型】
- 基于 Web 的 Go 语言 IDE - Wide 1.2.0 发布!
- 基于skype的在线语言学校上线[转]