在最近完成的一次Java.net的投票中,有超过75%的开发人员认为使用非Java语言是有一定的原因的。有19%(有点吃惊)的开发人员认为,在
JVM上完全没有必要使用非Java语言进行开发。总共有181个人进行了投票,有一人进行了评论。下面是投票的内容及结果:
在JVM上使用非Java语言最重要的原因:
23%(42票)——更先进的语法
6%(11票)——更好的性能
38%(69票)——一些非Java语言更适合某些类型的编程任务
8%(15票)——不太懂Java,不过了解移植到JVM的那门语言
19%(34票)——没理由使用非Java语言
6%(10票)——其它
做出这份调查问卷花费了我不少心思,我
发现调查的结果非常有意思(尽管这不是一疹专业的调查)。我在猜测人们选择某个选项的时候究竟是怎么想的。“一些非Java语言更适合某些类型的编程任务”这个赢得了大多数的投票,我认为这是
合理的。各种非Java的JVM语言已经被广泛使用,并且仍在不停地增长中。
我认为,"更先进的语法"当然也是一个非常合理的选择。Java 7和Java 8中语言的一些改进本质上就是想引入其它语言的一些特性(包括一些很受欢迎的非JVM语言)。更新的那些JVM语言,它们不需要向下兼容,也没有历史遗留代码的负担,可以在开始设计的时候就考虑使用一些现代的语法,也可以针对某些特定类型的编程任务而专门设计语法。这又回到了“一些非Java语言更适合某些类型的编程任务”这点上了。
我把“更好的性能”这个选项放到问卷中很大一部分原因是出于好奇。提起性能的时候,大家并不认为Java是很笨重的,如果你清楚你要做的是什么,你可以通过对Java进行性能
调优,从而获得不可思议的处理速度,或者难以置信的响应延迟,又或者是意想不到的处理大数据的能。和,等等。我在想,或者有些语言在原生状态就已经针对高性能的特点对JVM进行了调优,我希望那6%的投了“更好的性能”的那帮人也是这么想的。。
我很高兴看到只有8%的人使用非Java的JVM语言是因为"不太懂Java,不过了解移植到JVM的那门语言"。我能想到有人在必要的时候会选择使用非Java的JVM语言,因为
他们确定很快就不会再使用JVM了。如果你计划长期作为一名职业的软件工程师,甚至将来进阶成为一名软件
架构师的话,由于你不想学Java而成为一名Jython或者JRuby开发人员恐怕不是上策。
下面是19%的那些人,他们选择了“没理由使用非Java语言”。我把这个选项放到投票里,一个是出于好玩,一个是为了给某些Java粉表表忠心。问题在于,选择这个选项的人都是出于好玩吗?有没有人选择它是因为尝试了其它非Java语言后却不喜欢的呢?有没有人是因为不知道JVM上面除了Java还有别的语言而选择了这项的?我希望选中这个选项都是那些骄傲的Java老兵。
6%选择了“其它”,网友pjmlp还留下了评论:
选择其它,是因为我认为有许多原因,不止一个:
现代的语法
类型推导的支持
值类型
物化泛型(reified generics)
对外国语言有更好的FFI支持。
可以通过AOT (Ahead-Of-Time)编译器生成本地代码,有官方的工具支持
原创文章转载请注明出处:http://it.deepinmind.com
英文原文链接