InfoQ

新闻

Java语言运行时(JLR)项目已建立

作者 Werner Schuster译者 高昂 发布于 2007年8月2日 上午2时30分

社区
Ruby,
Java
主题
重用,
JRuby,
动态语言
标签
CLR,
语言,
JRuby,
DLR

运行在JVM之上的语言已经存在了很长的时间,几乎与JVM拥有同样悠久的历史。比较早的例子就是BeanshellJython语言。Java泛型的概念起源于Java的超集,如Pizza和GJ。不同于Sun公司,微软拥有.NET框架,将.NET虚拟机作为其通用语言运行时(Common Language RuntimeCLR),把它打造成多种语言的支持平台。从开始的C#、VB.NET、Cobol和EiffelSharp,到之后的F#IronPython,和其它更多的语言比如Delphi,都能在它之上运行。

许多运行在JVM之上的语言获得了小范围的认可,主要专注于像Jython或Beanshell这样的项目,除了一小圈技术狂热者之外,很少有其他的人知道。

微软已经先行一步拥有了动态语言运行时(Dynamic Language Runtime,DLR,并且为(动态)语言应用于CLR提供了更多通用的基础设施,这是一直以来在JVM所独缺的。JVM语言的实现者不得不自食其力找到每一个技巧或者解决方案,这将是一个对于大多数语言实现都会重复出现的过程。相关的例子参见文章编写没有PermGen内存泄漏的代码

目前,这一切因为JRuby的Charles Nutter与其他JVM语言团队(如Jython、Groovy等等)的沟通而发生着变化。首先是创建JVM语言的Google Group,在这里JVM语言实现者可以拥有一个共同论坛,来讨论JVM语言实现方面的问题或解决方案。

仅其自身并没有什么特别的报道价值——但是,这个小组的第一次协作已经一枪打响了。Jython的开发团队提供了Jython的包缓存机制的代码并使其对于所有开发者都可使用。为了能让人们有一个公用的地方存放这样的代码,Java语言运行时(JLR)项目就应运而生了,并且项目的源码仓库中已经纳入了上面说的缓存机制的代码。

未来的开发计划将会在JVM相关语言的邮件列表上进行讨论,不过我们已经可以从DLR目前提供的机制中借鉴到今后可能的发展方向。比方说,字节码生成工具就是目前所需的,工具将包含生成元数据的逻辑,就像在生成的字节码中包含源代码语言行数确切位置的调试信息。尽管这并不是一项高精尖科研活动,但是所有的语言实现都不得不从头开始解决这个问题。其它的通用代码则将会包含与Java语言的集成,例如查找重载的方法或是具有varargs方法的逻辑实现

这不仅是一项可以从实现者肩头卸下的基础设施工作,同时,还会有一个团队来指出哪个字节码对于多种语言特征来说表现最为出色,例如动态方法调用、闭包或者Continuations。因为这些语言拥有不同的语义,所以到底有多少特性可以被共用或改进并放进已有的代码库中,还有待观察。尽管如此,可运行的代码或者概况代码实例还是非常有用的,除此之外,已经证明的可以在当前JVM后端(即由字节码生成本地机器码的即时编译器)进行良好地处理的字节码序列也很有帮助。

查看英文原文:Java Language Runtime (JLR) project created

没有回复

回复

深度内容

Flex与JSON及XML的互操作

平台需要互操作性。在这篇文章中,作者仔细研究了Flex和JSON及XML的互操作性。文章也包含了使用E4X库来将XML映射到图表和表格组件的内容,还演示了如何使用as3core库来解码JSON消息。

用Qi4j进行面向组合编程

本文将简要介绍面向组合编程(COP,Composite Oriented Programming)的概念,展示它如何规避OOP存在的一些问题,并重新点燃使用可重用部件组装领域模型(Domain Model)的希望。

系统开发——新学科,新教育

一门新的计算机学科——“系统开发”,强调人性化、匠艺、设计、创意、创新和新事物的涌现,并建议用被称为“bottega”的工作室替代乏善可陈的教室。

图书聚焦:Visual Studio 2008 揭秘

Mike Snell和Lars Powers用他们最近由Sams出版的新书《Visual Studio 2008揭秘》,试图帮助大家提高开发人员的生产力。本文包括一个下载样章——第10章调试。

BPEL为何不是BPM的圣杯?

Pierre Vigneras在本文中讨论了作为标准之一的BPEL所存在的问题。Pierre先给我们大致介绍了一个简单的并行流程,接着讨论了从业者在试图以一个结构化模型为基础表达非结构化流程时遇到的一系列问题。

基于范型的多语言编程

你是否仔细思考过,为什么人们总在讨论“要正确的语言做恰当的事情”?在这篇文章中,Sadek Drobi向你解释了为什么应该在系统内部混合使用多种语言。

采访与书摘《Pro Web 2.0 Application Development with GWT》

Jeff Dwyer就关于他的新书(《Pro Web 2.0 Application Development with GWT》)、GWT1.5以及创建可搜索的Ajax应用谈了一些他的见解。

时刻准备着,迎接IT业的春天

我们需要设身处地地为客户及客户的业务本身着想,与客户同舟共济。更多创新的思路、产品和模式也同样将为IT业带来新的出路。IT业并不需要坐以待毙,在春天到来之后,市场将会更加繁荣!