JVM 语言的兴衰史 已翻译 100%

oschina 投递于 2017/08/24 16:03 (共 8 段, 翻译完成于 09-01)
阅读 1761
收藏 17
1
加载中

不管什么时候,都会有一些预测 Java 覆灭的帖子出现。但有趣的是,这些帖子从不写预言成真的日期。说实话,它们说的都算正确,因为这是每一种语言的最终命运都是:覆灭湮没,准确地说是越来越少地被利用到新项目中。问题是:最后谁会取代它们呢?

上周我们在 InfoQ 一篇同样类型的文章。至少,这篇文章说出来这个语言可能的替代者 Kotlin。这让我对 JVM 的语言现状和趋势有了许多思考:注意,语言的趋势与每个语言的技术优点和缺点无关。

north-31th
north-31th
翻译于 2017/08/25 01:58
2

我于 2001 年年底开始做 Java 开发,当时,Java 是真的很酷。每一个新开发者都想使用所谓的新技术:无论是 .NET 还是 Java,而有经验一些的开发者使用的是 COBOL。我在学校学习了 C 和 C++,所以 Java 内存管理对于我来说非常简单。我对 Java 很满意,但并不是每个人都这么认为。

Groovy 诞生于 2003 年。但我不记得我是什么时候开始学习它的。而实际上:使用它后我不再需要一门脚本语言了。在具有多个开发团队并长时间开发企业级应用程序的背景之下,静态类型相比动态类型拥有巨大优势。尤其在进行产品测试以检查类型系统时。我唯一需要创建脚本的时候,是作为 WebSphere 管理员时:选择 Python 还是 TCL。

north-31th
north-31th
翻译于 2017/08/25 02:05
1

一年之后,Scala在2004年被我接受。 我不记得是什么时候以及是怎样知道Scala的,但那时候确实是很晚了。与Groovy相反,我决定试试它。主要的理由是我长期以来对创建“更好”的代码(更好的可读性和可维护性)感兴趣。Scala是静态类型的,它更像我正在寻找的东西。我报了Coursera课程Scala中的函数式编程原理。它有三个主要的影响:

  • 它让我质疑我写Java代码的方式。 例如,为什么当我设计类时要自动生成getter和setter方法?

  • 对大多数开发者来说,我觉得Scala很容易写出缺乏可读性的的代码——包括我。

  • 我开始寻找其他替代语言。

我是菜鸟我骄傲
我是菜鸟我骄傲
翻译于 2017/08/25 08:50
1

在 Groovy 和 Scala 之后,第二代(如果你把 Java 也算做第一代的话,则是第三代)JVM 语言包括:

大致浏览一遍后,我确信他们没有太多的吸引力,不值得我投入时间。

Tocy
Tocy
翻译于 2017/08/24 18:58
0

几年前,我决定自学基本的 Android 开发,以便能够了解移动开发者的开发环境。好家伙,即使有多年开发 Java EE 和 Spring 应用程序的经验,但它还真给我一个惊喜了 - 还不是愉快的那种。这就像回到过去十年前那样的开发体验,Android  API 非常低级,更别说在本地测试应用程序。经过快速的搜索相关信息,我发现 Kotlin 在很多地方被提到,所以最后决定试一试。我立即爱上 Kotlin 了,得亏它的扩展功能,我可以将现有的垃圾 API 改进得更好,甚至更优雅。我开始更多的挖掘这门语言,并开始在服务器端项目中使用 Kotlin。然后,Spring 框架宣布了与 Kotlin 的整合。然后在 Google I/O 大会上,Google 也宣布在 Android 开发中官方支持 Kotlin。

这篇文章基于我个人的体验和观点。如果你更喜欢阅读你赞同的帖子,请随时停止阅读。
Tocy
Tocy
翻译于 2017/08/25 09:34
2

除了我自己的经验,这些语言的现状是如何呢? 我在Google Trends中进行了一个快速搜索。

有几件有趣的事情值得关注:

  • Google已经识别到诸如Scala、Groovy和Kotlin作为"编程语言"的搜索关键词,而没有把Ceylon和eXtend作为关键词。对于Ceylon来说,我只能假装它是因为Ceylon是一个受欢迎的地方。对于eXtend,恐怕是因为大家很少在Google中搜索它。

  • Scala是迄今为止最受欢迎的,其次是Groovy和Kotlin。我没有关于Scala的真实线路图。

  • 五月份的Kotlin搜索巅峰是与谷歌在Google I/O上的支持公告相关的。

  • 大多数搜索Scala和Kotlin的数据来自中国,考虑到地理位置上的平衡,Groovy更胜一筹。

  • Scala搜索与术语“Spark”强烈相关,Kotlin搜索与术语“Android”相关。

Tocy
Tocy
翻译于 2017/08/25 09:43
0

进一步挖掘可能会发现有趣的事实:

  • xTend没有死,因为它从未活过。从来没有读过任何关于它的帖子。从来没有听过一个关于它的峰会。

  • 2017年,红帽公司将Ceylon捐赠给Eclipse基金会,创建了Eclipse Ceylon。将软件赠送给基金会的私人行为可能会被不同的方式解释。在这种情况下,尽管围绕这一举措进行了可靠的谈判,但这并不意味着Ceylon的未来。

  • 2015年,Pivotal停止赞助Groovy,并转移到Apache基金会。虽然我相信Groovy有足够的支持基础,并且在JVM脚本上也是独一无二的,但这并不是一个好兆头。这与Groovy核心创建者的提交频率相关:它们的提交次数急剧减少 - 到某些停止点。

  • 有趣的是,Scala和Kotlin最近都入侵了其他领域,并将其翻译成JavaScript并编译成原生代码。

  • 在Java中,JEP 286是使用类型推断来增强语言的提议,这是Scala和Kotlin已经提供的功能。然而,它仅限于局部变量。

  • 有意思的是,通过保留语言的一小部分,来努力提升Scala编译时间。然后提出问题,为什么要保持Scala,如果你抛弃它强大的功能(如宏)?

亚林瓜子
亚林瓜子
翻译于 2017/08/25 14:25
0

我并不擅长预测,但这是我的一些展望:

  1. Groovy拥有自己的强项——脚本,这就留下Java、Scala和Kotlin在服务器端的JVM上为纯应用程序开发而争夺占用率。

  2. Scala也开创了自己的领域。Scala开发人员通常认为这种语言优于Java(或Kotlin),而不会转移到另一种语言。然而,由于Spring和Google的公告,Kotlin可能会成为对Java不满意的开发人员的Scala的替代。

  3. Kotlin已在Android战场上获胜。Scala过去忽视了这个领域,并且不会在将来中继续投入,因此Kotlin在这场比赛中已经遥遥领先了。

  4. Kotlin在手机上的崛起不是一个预期中的举动,而是一个不错的意想不到的惊喜。JetBrains一旦注意到这个趋势就把它用作了前进的路标。

  5. Kotlin与Java的互操作性是杀手级别的功能,这可能会说服管理者将遗留项目迁移到Kotlin上然后开始新项目。正如Java的不间断的后向兼容性一样。

亲爱的读者,尽管(特别是)你不同意上述的观点,但我将对你的意见非常感兴趣。只要你有礼貌地提供事实,并证实你的观点即可。

Tocy
Tocy
翻译于 2017/08/25 12:10
0
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(6)

乌扎拉
乌扎拉
jvm不是java专属的
张伟斌卍
张伟斌卍
所以替代scala的是kotlin是可以预期的?
Raymin
Raymin
Clojure 去哪儿了?
tugan
tugan

引用来自“南湖船老大”的评论

这个发过一次了好像。。

引用来自“久永”的评论

不同的,说明你没好好好看。特别开始的一部分非常类似,说明你评论只看开头。哈哈。
差不多吧。。。难道是机器发的新闻,不就是推 kotlin 的文章么
久永
久永

引用来自“南湖船老大”的评论

这个发过一次了好像。。
不同的,说明你没好好好看。特别开始的一部分非常类似,说明你评论只看开头。哈哈。
南湖船老大
南湖船老大
这个发过一次了好像。。
返回顶部
顶部