jvm与非jvm语言优劣_我们在JVM上需要其他语言吗?

jvm与非jvm语言优劣

似乎趋势正在流行并在最近加速:每个在Java生态系统中不折不扣的组织都感到有必要创建在Java虚拟机上运行自己的语言。 与诸如Jython和JRuby之类的传统语言,以及诸如Scala之类的更受推广的语言并列,Red Hat 宣布了 Ceylon ,现在轮到JetBrain与Kotlin了

为什么有那么多种语言?

但是,真正的问题不是我们是否需要它们(答案是简单的“否”,因为我们创建的软件没有它们),而是为什么会突然增加。

开发人员观点

实话实说,Java是当今不断变化的世界中的旧时代。 我10年前开始使用Java,当时我还不是先锋。 Java语言的发展受到以下因素的阻碍:

  • .Net之前缺乏竞争对手
  • 与旧版本兼容的要求
  • 包含利益不同的公司的变更过程

三种语言的混合使得对语言的任何更新都是一个真正的挑战。 最后的重大更改可以追溯到Java 5,即生命周期结束...

因此,一些开发人员宁愿使用高速公路来处理该语言中不存在的功能,例如Scala的函数式编程,而不是遵循缓慢的Java路径。

新的领导者

尽管我有一个清楚的认识,为什么开发人员可能想在JVM上使用Java以外的语言,但我只能推测为什么公司会发布它们。 恕我直言,Java生态系统的主要参与者担心Oracle对Java的控制,并试图逃避将来使用Java的潜在成本。 考虑到Oracle对TCK以及Hologic惨败的立场,这确实是一个风险。

其他语言带来的风险

尽管先前的理由都支持语言的多样化,但也有一些强有力的论据再次证明了它们的用途。

技能管理

Java生态系统非常丰富,不仅有资格成为Java开发人员,而且还具有Java / Spring / Hibernate开发人员的资格。 如果出现其他语言,招聘将更加困难。 从开发人员的角度来看,所需的技能将更加广泛,从而导致每种单独语言的知识减少(不,您不能成为多种语言的精通者)。

减肥

如今,市场大致可分为Java,.Net和PHP。 我同意其他人的存在,但坦率地说,他们并不算是主要参与者(Flex除外,但它仍保留在GUI上)。 如果Java语言让位给其他一堆其他语言,无论它们多么棒,那么Java社区将被整体分解为许多小型社区,彼此之间无法很好地协作。 请注意,如果您阅读了有关锡兰评论 ,它就会开始发生,有些肯定看起来像一场战争在等待发生。

其他情况

在前面的部分中,我故意省略了一些敏感的案例。 我不想发动一场火焰大战,但由于我倾向于不同意其中的一些,因此以下是我的反对意见。

LOC

一些人抱怨Java冗长,并选择一种语言,使他们减少编写(和阅读)代码的次数。 尽管我同意写10 LOC相对写100 LOC更可维护,但是写15并没有问题。我谨此提醒大家,并非每个开发人员都是顶尖的,并且编写(和阅读)显式代码会花费很长时间拥有可维护软件的方法。

对于那些痴迷于LOC优化的人,我很高兴提供这场比赛

运算符重载

Java没有运算符重载。 再次,这不是问题,至少对我而言:这意味着我可以指望1 + 1可以完成我所期望的操作,而不是其他绕线操作。 作为反例,只需看一下Scala Akka的bang运算符 (对于新手,还有bang bang和bang bang bang)。 当然很短,但是您确实需要知道它的作用。 如果这是您使用的唯一库,那很好。 如果没有,您将走向一个充满疑问的世界。

技术与业务

只有未来会证明一切,但恐怕趋势是,语言将超越开发者的行列,从而使开发人员摆脱纯粹的技术任务,而没有业务价值,例如内存管理,可移植性,持久性等。 前两个铃响了吗? Java在他们身上冲浪。 强大或炒作是经理不关心的形容词。 由于他们有决定权,所以我认为,因为一种语言可以做的比另一种语言要多,所以除了受教育的语言之外没有其他兴趣。

结论

就目前而言,我的观点是,针对所有这些新语言的消极观点并未与积极的观点相抵触。 当然,我内心很务实,所以如果我遗漏了一点,我会全神贯注。 最后,只有时间会证明一切。

翻译自: https://blog.frankel.ch/do-we-need-other-languages-on-the-jvm/

jvm与非jvm语言优劣

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值