在JVM上使用非Java语言的原因

在最近完成的一次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)编译器生成本地代码,有官方的工具支持


原创文章转载请注明出处:[url=http://it.deepinmind.com/%E5%85%B6%E5%AE%83/2014/05/22/poll-result-most-javajvm-developers.html]http://it.deepinmind.com[/url]

[url=https://weblogs.java.net/blog/editor/archive/2014/05/20/poll-result-most-javajvm-developers-see-good-reasons-sometimes-using-non-java-jvm-languages]英文原文链接[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值