`
feipigwang
  • 浏览: 772406 次
  • 性别: 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**:一种用于构建高度...

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

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

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

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

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

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

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

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

    各种编程语言的特点

    在Microsoft的平台上运行,而且过于依赖Visual Studio IDE。...语言的流行程度、库支持、语法特性、学习曲线和友好性都是衡量编程语言优劣的重要指标。理解不同语言的特点,有助于我们根据具体应用场景做出最佳选择。

    聊聊Java平台上的非Java语言共3页.pdf.zip

    这些语言通常被称为“JVM语言”,因为它们编译成字节码,可以在Java虚拟机上执行,从而利用JVM的强大功能和跨平台兼容性。本文将探讨一些在Java平台上流行的非Java语言,并分析它们的特点、优势以及应用场景。 1. *...

    JAVA语言学生成绩管理系统.docx

    Java语言是当今最流行的编程语言之一,本文将基于Java语言设计和实现一个简单的学生成绩管理系统。该系统能够管理学生的基本信息,包括学生姓名、学号和成绩,并提供添加学生、删除学生、更新成绩和打印所有学生信息...

    java基础及中级面试题+jvm面试题+集合面试题

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发中占据主导地位。为了在竞争激烈的IT行业中脱颖而出,理解和掌握Java的基础以及进阶知识至关重要。这份资料包“java基础及中级面试题+jvm面试题+集合面试题...

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

    Java是一种高级、面向对象的编程语言,自1995年由Sun Microsystems公司推出后,迅速成为全球最流行的开发语言之一。Java的设计初衷是为了“一次编写,到处运行”(Write Once, Run Anywhere, WORA),它的跨平台特性...

    小米便签开源软件是一款较为流行的备忘录软件,其由Java语言编写,基于Android操作系统进行开发运行和维护

    它在Android平台上占据主导地位,因为Android系统主要采用Java虚拟机(JVM)来运行应用程序。因此,小米便签选择Java作为开发语言,既符合Android生态系统的标准,也确保了软件的兼容性和可维护性。 在Android操作...

    基于游戏开发的Java语言教学初探.docx

    ### 基于游戏开发的Java语言教学初探 #### 教学设想及开发工具 ##### 教学设想 为了提高学生对Java编程的兴趣并增强其实战能力,本教学方案提出了将游戏开发融入到Java语言教学中的想法。通过游戏开发项目,不仅...

    第一讲 Java语言概述

    Java编程语言的普及速度惊人,到2001年,全球已有约310万Java程序员,逐渐成为最流行的网络编程语言。 1.1.2 Java语言的产生 Java的早期版本名为Oak,旨在为消费电子产品开发应用程序。然而,由于消费电子产品市场...

    毕业设计选题管理系统 基于JSP+SQL语言

    《基于JSP+SQL语言的毕业设计选题管理系统》 毕业设计选题管理系统是一个重要的工具,它能够有效地帮助教育机构管理学生的毕业设计选题过程,提高教学效率。本系统采用JSP(JavaServer Pages)作为前端展示技术,...

Global site tag (gtag.js) - Google Analytics