我最近一直在学习scala这种被成为下一代java的语言,应该说它的一些特性挺吸引人的。但我最近注意到Eclipse推出了一个叫做Xtend的语言,在新闻中提到
Eclipse Xtend可以编译成可读的Java代码,类似CoffeeScript之与Javascript。
什么意思?就是把一种语法替换成另一种而已,其机理有点像我们使用的模版引擎,模版语言最终会被替换成目标语言执行。那么scala呢?似乎高级一点,它是直接编译成java class的(或者.net平台的CLR代码)。
但很重要的一点是它本身没有虚拟机实现或者更加底层的支持。那么我想问的是
- Scala没有自己的虚拟机到底有没有问题,这是否会影响它作为一种语言的独立性和执行效率
- java虚拟机,以及CLR虚拟机跟其它的虚拟机有什么区别。因为我发现在这两个虚拟机上有很多其它语言的实现,比如JRuby, JPython, IronPython等等。但是像ruby, python这种语言又都有自己的虚拟机,但没听说在它们的虚拟机上又衍生出什么语言的。