开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
JVM 语言的兴衰史 - 技术翻译 - 开源中国社区

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

标签: <无>
oschina 推荐于 3个月前 (共 8 段, 翻译完成于 09-01) 评论 6
收藏  
17
推荐标签: 待读

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

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

north-31th
 翻译得不错哦!

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

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

north-31th
 翻译得不错哦!

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

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

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

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

我是菜鸟我骄傲
 翻译得不错哦!

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

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

Tocy
 翻译得不错哦!

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

这篇文章基于我个人的体验和观点。如果你更喜欢阅读你赞同的帖子,请随时停止阅读。
Tocy
 翻译得不错哦!

除了我自己的经验,这些语言的现状是如何呢? 我在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
 翻译得不错哦!

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

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

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

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

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

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

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

亚林瓜子
 翻译得不错哦!

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

  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
 翻译得不错哦!
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们
评论(6)
Ctrl/CMD+Enter

这个发过一次了好像。。

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

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

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

这个发过一次了好像。。

引用来自“久永”的评论

不同的,说明你没好好好看。特别开始的一部分非常类似,说明你评论只看开头。哈哈。
差不多吧。。。难道是机器发的新闻,不就是推 kotlin 的文章么
Clojure 去哪儿了?
所以替代scala的是kotlin是可以预期的?
jvm不是java专属的
顶部