关于JVM平台开发语言一直是Java开发者茶余饭后的一个热门话题JVM作为一种机制用以提供Java应用在不同的环境其他平台以及不同硬件上的可移植性而基于JVM平台的编程语言也是不断的在增加从动态语言如GroovyJRuby Jython到静态型Scala语言 JVM也正成为一个多元化的平台开发人员可以充分利用不同语言来满足各自不同的需求 从本月的编程语言排行榜上我们可以看出本次最受欢迎的种编程语言中种就属基于JVM平台开发的编程语言这也意味着开发者对JVM平台开发语言的关注使用也不断的增加为什么JVM的编程语言会如此受到开发者的青瞇?下面我们从JVM平台的点特性进行分析 动态语言支持 从SE 开始就是对动态语言的支持动态语言逐渐成为许多Java开发者应用开发日常工作的一部分并常常用于原型开发或用来提高开发速度为了快速得到更大规模的Java应用程序人们一直在使用动态语言胶合程序部件 事实上任何可以使用有效class 文件表述的功能性语言都可以运行在JVM上动态语言的灵活性尤其是脚本语言对于实验性原型应用程序以及需频繁更新的程序都具有独特的吸引力 Java开发人员也可以使用动态语言进行部分编程然后将这部分代码转换成Java或继续用Java来开发程序中更为健壮生命力更强的部分其他代码则可以通过更加动态的语言来进行开发动态类型固有的灵活性与JVM的执行效率合二为一很明显这就是它能够吸引动态编程语言创建者以及使用这些语言构建应用程序的开发者的原因 跨平台性 如果单单说JVM支持动态语言编程就能够吸引更多的开发者那是不可能的曾有这么一句话一次编程到处运行这句话说的就是JVM的跨平台性指即不依赖于操作系统也不信赖硬件环境 那么JVM是如何跨平台的呢?下面提供张JVM的结构图 JVM跨平台的四种执行引擎部分说明 解释器 简单一次性解释字节码易于实现但是执行缓慢 即时编译器 将第一次执行的字节码编译为本地机器代码编译出的本地机器代码会被缓存第二次调用的时候可以重用执行速度快但是消耗更多内存(与解释器相比) 自适应优化器 虚拟机开始的时候是解释字节码但是他会监视运行中的程序并记录下使用最频繁的代码段程序运行的时候将最频繁的代码编译成本地代码其他使用不频繁的代码继续保持为字节码 硬件芯片 用本地方法执行字节码java通过编译器后生成class文件为字节码通过虚拟机编译后形成机器码电脑上只能运行机器码字节码是可以运行在任何支持java虚拟机的硬件平台和操作系统上的二进制文件 (摘自bobiy的博客) 混合编程 JVM平台能够受到开发者的青瞇还有一点就是能够进行多语言混合编程也就是说在JVM平台上不仅Java一种编程语言可以使用事出于单一的Java开发已经无法满足当前软件复杂的需求而混合编程也受到了开发者的热捧至今已成为主流 JVM不断的向多语言方向发展每种语言都可以针对自己擅长的方面更好的解决问题日趋复杂的软件需求也使得混合编程的应用场景更加的频繁在不远的未来我们将会看到我们的项目中并行进程用Clojure编写展示层使用Jruby/Rails中间层用的是Java编写 总 结 多年来在JVM上运行的语言越来越多而动态语言跨平台性混合编程的特性对开发者是非常具有吸引力的随着JVM平台开发的流行Java开发者也跟着发生了一些改变因为他们不仅仅只限于Java一种编程语言 |