继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

资深开发者带你看看 JVM 语言的浮沉史

嗷呜呜呜呜呜呜呜
关注TA
已关注
手记 15
粉丝 114
获赞 548

不时地,总会有预言 Java 将要死掉的文章冒出来,有意思的地方在于他们都没有写上一个日期。不过说实话,他们说的可能都是正确的。这是每一门语言的命运:消失或被遗忘 — 或者更准确的说是越来越少地被新项目所使用。问题是谁会取代他们?

上周在 InfoQ 上看到另一篇这样的文章。至少,这篇文章给出了一个有可能的替代品,Kotlin。它让我对 JVM 语言的状态和趋势进行了思考。值得注意的是,语言的趋势与每种语言的技术优点和缺陷无关。

我在 2001 年底开始学习使用 Java 进行开发。当时,Java 非常酷。每个年轻的开发者都希望使用所谓的新技术:要么是 .NET,要么是 Java,而当时较年长的开发者使用的 Cobol 语言。学习 Java 之前,我已经在学校学习过 C 和 C++,所以,Java 中的内存管理对我来说是如此的简单。我对 Java 感到十分满意……但不是每个人都有着同样的想法。

Groovy 是在 2003 年出现的,但我不记得我是什么时候学习它的了。不过,一个事实是:此后,我不再需要一门脚本语言了。在开发具有很长开发人员队伍的企业级应用的背景下,静态类型比动态类型拥有巨大的优势,尤其是在进行产品测试以检查类型系统时。我唯一需要使用脚本语言的时候,是作为一名 WebSphere 管理员时:选择 Python 还是 TCL。

一年后,即 2004 年,Scala 才被我接受。我不记得是什么时候以及是怎样听到关于它的消息的,但确实是太晚才接触它了。因为当时对 Groovy 有抵触的心理,我决定尝试一下 Scala。主要原因是我对创造“更好”代码的长期兴趣 —— 更好的可读性和维护性。Scala 是静态类型的,也是我正在寻找的。当我学习 Coursera 课程 - Scala 中函数式编程的原则 时,它对我产生了三个主要的影响:

它让我对自己编写 Java 代码的方式产生了困惑。例如,为什么当设计一个类时,我会自动生成 getters 和 setters

Scala 使得大多数开发者(包括我自己)更易编写出缺乏可读性的代码

我开始寻找其他的替代语言

在 Groovy 和 Scala 进入第二代 JVM 语言之后(如果您把 Java 看作第一代),第三代 JVM 语言包括:

JetBrains Kotlin

Red Hat Ceylon

Eclipse eXtend

大概浏览了一遍他们之后,我确信它们没有太多的“牵引力”,不值得我在上面投资时间。

几年前,我决定自学基本的 Android 开发,以便能够了解移动开发者的开发环境。好家伙,即使有多年开发 Java EE 和 Spring 应用程序的经验,但还真给我一个惊喜 - 还不是一个愉快的那种。这就像回到过去十年前那样的开发体验,Android API 非常低级,更别说在本地测试应用程序。经过快速的搜索,我发现 Kotlin 在很多地方被提到,所以最后决定试一试。我立即爱上 Kotlin 了,得亏它的扩展功能,我可以将现有的垃圾 API 改进得更好,甚至更优雅。

我开始更多的挖掘这门语言,并开始在服务器端项目中使用 Kotlin。然后,Spring 框架宣布了与 Kotlin 的整合。然后在 Google I/O 大会上,Google 也宣布在 Android 开发中官方支持 Kotlin。

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP