`
javatgo
  • 浏览: 1204524 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

基于JVM的语言正在开始流行

阅读更多

基于JVM的语言正在开始流行

赵锟

总结:

这是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来实现的新兴语言的开始。

本文由我好友赵锟成文:我转载于此。

你可以继续转载,但请注明作者和出处。谢谢!

分享到:
评论

相关推荐

    浅析JVM

    **HotSpot VM**是目前最流行的JVM实现之一,由Sun Microsystems开发,现归Oracle所有。HotSpot VM采用了分代收集的概念,将堆空间分为年轻代和老年代。 - **年轻代**:主要用于存放新创建的对象,通常包括Eden区和...

    sentry-java, 用于Java和其他JVM语言的哨兵 SDK.zip

    sentry-java, 用于Java和其他JVM语言的哨兵 SDK 用于Java的哨兵 SDK这是用于的Java SDK 。 它为许多基于流行的框架和库提供out-of-the-box支持,包括 Android 。Log4J 。Logback和更多的。在大多数情况下,使用现有...

    JVM versus CLRA Comparative Study.pdf

    Java 虚拟机(JVM)和 .NET 公共语言运行时(CLR)是两种流行的虚拟机架构,它们都是为对象导向程序设计的。近年来,两者之间的比较研究引起了广泛的关注。本文将对 JVM 和 CLR 进行比较研究,探讨它们在编译和执行...

    JVM详解及调优

    Sun JVM是早期最流行的JVM实现之一,它的设计基于HotSpot VM,具有高性能的特点。 **2.3 Sun JVM内存管理(优化)** - **堆(Heap)**: 用于存放所有Java对象实例和数组的空间。堆是所有线程共享的,因此需要处理...

    ant-eclipse-jvm1.2-1.0.jar.zip

    而Eclipse则是一个流行的开源集成开发环境(IDE),支持多种编程语言,尤其对Java开发者来说,Eclipse提供了丰富的功能和插件。本文将详细介绍标题为"ant-eclipse-jvm1.2-1.0.jar.zip"的压缩包,以及其中包含的文件...

    Programming Concurrency on the JVM

    由于JVM支持多种编程语言,本书还涵盖了使用不同语言进行并发编程的方法。这包括但不限于Java、Scala、Groovy等。此外,书中还提供了大量使用当前流行的开源工具和技术的例子,例如: - **Akka**:一种用于构建高度...

    基于Java语言的新闻资讯项目设计源码

    基于Java语言开发的这一系统,不仅利用了Java语言的强大功能和丰富的类库资源,还能够利用Java虚拟机(JVM)的跨平台特性,使得系统能够部署在多种操作系统环境中。 该项目的源码设计充分考虑了新闻资讯系统的实际...

    基于Java语言的Ironfist新版本Mod设计源码

    随着编程语言和开发工具的发展,越来越多的Mod开发开始采用成熟的编程语言进行编写。本篇文章将详细介绍基于Java语言开发的Ironfist游戏新版本Mod设计源码的相关知识点,包括开发环境配置、源码结构、功能设计以及...

    基于Java语言的第四阶段模块三设计源码分享

    Idea工作空间文件和Idea模块文件则表明项目是基于IntelliJ IDEA这一流行的集成开发环境进行开发的。Idea工作空间文件保存了工作空间中项目的配置和布局信息,而Idea模块文件定义了模块的结构和依赖关系。 项目还...

    基于Java语言的Oracle一卡通设计源码

    本项目基于Java语言开发的Oracle一卡通系统,其设计源码不仅适用于校园环境下的身份识别和管理,也能够为其他需要身份认证和交易管理的场景提供参考。 项目中包含的58个Java源文件构成了系统的核心功能模块,这些...

    2020年java虚拟机生态系统报告_jvm_2020.pdf

    9. **主要JVM语言**:Java是主流语言,但报告也关注了其他在JVM上运行的语言,如Kotlin、Groovy和Scala的使用情况。 10. **Java模块系统**:Java 9引入了模块化系统(Jigsaw项目),报告调查了其采用率、难易度以及...

    基于计算机软件开发的JAVA编程语言探究.pdf

    标题:基于计算机软件开发的JAVA编程语言探究 知识点: 1. 计算机软件开发的现状与发展 文章开篇介绍了计算机软件和互联网技术的发展现状,强调了其在不同行业中应用的广泛性,以及由此带来的生活方式的改变。同时...

    基于Java语言的题型总结小盒子设计源码

    Java类文件通常是指编译后的字节码文件,它们具有.class扩展名,并能够被Java虚拟机(JVM)执行。而Java源文件则包含了程序员编写的源代码,具有.java扩展名,需要通过Java编译器编译成字节码文件后才能运行。在这套...

    基于Java语言的智能数据分析系统后端设计源码

    项目包含149个文件,其中Java源文件占了大多数,这表明系统的主要逻辑和功能实现均基于Java编程语言。此外,还包含XML配置文件,它们对于定义应用的运行环境和配置参数至关重要,有助于系统后端的灵活部署和维护。...

    基于Java语言的餐厅外卖系统后端设计源码

    在深入探讨“基于Java语言的餐厅外卖系统后端设计源码”之前,我们首先需要了解这个系统所处的技术背景和行业应用。餐厅外卖系统是一种典型的O2O(Online to Offline)业务模式,它结合了线上订购平台和线下餐厅服务...

    基于Java语言的2021-2022年度第二学期团队激励课程小仓库设计源码

    本文将探讨一个具体的Java语言项目,即“基于Java语言的2021-2022年度第二学期团队激励课程小仓库设计源码”。此项目不仅展现了Java语言的实践应用,还通过团队合作的方式,锻炼了学生的协作和编程能力。 该项目是...

    基于java语言的网络聊天系统开发与实现.docx

    Java语言自推出以来,因其独特的优势和强大的功能,逐渐成为全球流行的开发工具。 1. **简洁性**:Java摒弃了C++中的指针操作和某些复杂的特性,如运算符重载和多继承,使得学习和使用更加简单。Java的垃圾回收机制...

    JVM相关的常见面试问题汇总.pdf

    - **Hotspot虚拟机**: 最流行的JVM之一。 - **GraalVM**: 支持多种语言的高性能JVM。 - **IBM公司**: - **J9虚拟机**: IBM自家的JVM,广泛应用于IBM的产品中。 - **Azul Systems公司**: - **Zing**: 高性能的JVM...

    基于Java语言的房屋出租系统设计源码

    本文档是一份基于Java语言开发的房屋出租系统设计源码的详细介绍。该系统是一个旨在为用户提供全面且实用房屋租赁解决方案的软件项目。整个系统由多种文件类型构成,共计39个文件,包含XML配置文件、Java源文件、...

Global site tag (gtag.js) - Google Analytics