技术成就梦想

代码如诗

JVM 语言的兴衰史 – 技术翻译 – 开源中国社区

2017年9月6日 Java 开源项目 移动开发 0

问答

[
登录 |
注册 ]

oschina
推荐于 2周前 (共 8 段, 翻译完成于 09-01)
评论 6




收藏  

4




推荐标签:
待读




收藏  

4




推荐标签:
待读




分享



收藏  

4

参与翻译 (7人) : Tocy, north-31th, Lofo, 我是菜鸟我骄傲, 亚林瓜子, gu_oc_haolang, lissownpro
仅中文 | 中英文对照 | 仅英文 | 打印此文章

不管什么时候,都会有一些预测 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

 翻译得不错哦!

Ctrl/CMD+Enter




  • People
  • Nature
  • Objects
  • Places
  • Symbols






Ctrl/CMD+Enter

插入:



  • People
  • Nature
  • Objects
  • Places
  • Symbols







这个发过一次了好像。。

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

这个发过一次了好像。。

不同的,说明你没好好好看。特别开始的一部分非常类似,说明你评论只看开头。哈哈。

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

这个发过一次了好像。。

引用来自“久永”的评论

不同的,说明你没好好好看。特别开始的一部分非常类似,说明你评论只看开头。哈哈。

差不多吧。。。难道是机器发的新闻,不就是推 kotlin 的文章么

Clojure 去哪儿了?

所以替代scala的是kotlin是可以预期的?

jvm不是java专属的
开源中国社区(OSChina.net)是工信部
开源软件推进联盟 指定的官方社区
开源中国手机客户端:
Android客户端
iPhone 客户端
Windows Phone 客户端

开源中国手机客户端:
Android客户端
iPhone 客户端
Windows Phone 客户端