炼数成金 门户 大数据 Java 查看内容

不管你爱与不爱,Java都在变得更好

2019-6-28 15:27| 发布者: 炼数成金_小数| 查看: 22562| 评论: 0|原作者: Simon Ritter|来自: InfoQ

摘要: TechRepublic 网站最近发布了一篇文章,讨论了开发者喜爱和讨厌的编程语言。结果很有意思,Java 既是第三大最受程序员喜爱的语言,也是第二大最受程序员讨厌的语言。很显然,作为一门编程语言,Java 出现了两极分化 ...

Java Oracle Hadoop 编程 C++ 编程语言

TechRepublic 网站最近发布了一篇文章,讨论了开发者喜爱和讨厌的编程语言。结果很有意思,Java 既是第三大更受程序员喜爱的语言,也是第二大更受程序员讨厌的语言。很显然,作为一门编程语言,Java 出现了两极分化。我就这个问题发了一条推文,有人引用了 C++ 之父 Bjarne Stroustrup 的经典名言作为评论:“世界上只有两种语言,一种饱受诟病,一种没有人用”。我觉得这位用户借这句话恰如其分地表达了他的观点。

第二篇文章来自 Packt Publishing 出版公司,这是一份开发调查报告。报告把 Java 放在一个相对负面的位置上。从报告的结果来看,Java 成了开发者最后悔学习的一门编程语言。但有必要说明一下,即使 Java 在报告中名列第一位,但只有不到 5% 的受调者给出了的反馈。这 5% 代表什么意思呢?是指受调总人数的 5%(那么总共是 226 人)呢,还是指感到后悔的人(总共 102 人),抑或是把 Java 作为主要开发语言的人(总共是 38 人)?不管怎样,我不认为这是一种可供开发者参考的趋势。他们感到后悔的大部分原因都是老调重弹,比如“Java 似乎正在被淘汰”、“Java 就是现代编程语言的 COBOL”、“Java 代码又臭又长,太难学了”。

报告作者强调:“Oracle 把重心转向了企业 Java,并放弃了对 OpenJDK 的支持,导致 Java 不确定性骤增。尽管 Red Hat 的挺身而出给了 Java 一个未来,但那些长期依赖 Java 的人仍然十分担心”。

但其实上面这句话说的并不对。Oracle 没有不再为 Java 提供支持。Oracle 确实改变了 Oracle JDK 的交付方式,但仍然可以免费下载使用。一些提供商(比如 Azul)仍然在提供旧版本 JDK 的更新,既有免费的,也有商业付费的。Red Hat 是 OpenJDK 的极力支持者,来自 Red Hat 的 Andrew Haley 现在是 OpenJDK 7、8 和 11 项目的负责人。Oracle 仍然在主导 OpenJDK 当前版本的发布事宜。

24 岁的 Java 在各大更受欢迎语言调查(比如 TIOBE、RedMonk,等等)中仍然名列前茅。在过去几年中,我们也看到了其他一些编程语言快速崛起,它们都声称要取代 Java。最显著的例子要数 Ruby on Rails、Scala 和 Kotlin 了。

为此,我最近在思考一个问题,那些肩负 Java 平台发展重任的人,比如 Mark Reinhold、Brian Goetz 和 John Rose,他们的处境究竟有多难?在这里,我要引用 14 世纪诗人 John Lydgate 的一句话:“你可以一直取悦某些人,也可以在某些时候取悦所有人,但你不能一直取悦所有人”。
Java 之父 James Gosling 把 Java 说成是蓝领的编程语言,意思是说,Java 是帮助开发者完成任务的一个利器。在这方面,Java 无疑是成功的。
难就难在如何演化这个平台。该如何在不让另一部分人感到不爽的情况下对 Java 做出一些修改呢?修改是为了取悦一部分人,但另一些人可能更喜欢原来的东西。

现在让我们回过头来看看“Java 代码又臭又长,太难学了”这句话。这确实是 Java 代码饱受诟病的地方,因为 Java 有太多的模板代码,太啰嗦了。
在过去二十年中,Java 在这方面做出了很多改变来缓解(如果说还算不上解决的话)这个问题。Java 5 引入的注解极大简化了企业开发,因为可以使用依赖注入了。我相信现在开发 Web 服务的人没有不使用注解的。Java 8 引入的 lambda 表达式和 Stream API 让集合的处理变得更简洁。Coin 项目也带来了一些小的帮助,比如多个 catch 和 try-with-resources。

但与 Kotlin 相比,Java 仍显啰嗦。Kotlin 开发者的优势在于他们不需要考虑已有代码的兼容性问题,但 Java 开发者却不可以。
个人而言,我认为 Java 作为一门编程语言最强大的地方在于它的可读性。人们阅读代码的时间显然比写代码的时间要长得多,相信大部分开发者都会同意这个观点。所有的开发者在某些时候都要去维护别人写的代码。代码越容易读懂,修复 bug 或改进功能就越容易。有一次,我收到了一个修改一个 Perl 应用程序的任务。这个程序并不算大,打印出来只有 8 页,但因为 Perl 语法密度太大,我一下子觉得它只是一门适合用来写代码的语言,但写出来的代码并不容易读懂。所以,有时候啰嗦一点也不见得是坏事。

最重要的是,Java 还在不停地演化。在新的发布周期之下,Java 前进的步伐似乎慢了一些。但我们确实也看到 Java 不断推出新特性,即使很多都是小改进,却都让开发者的生活变得更美好。

向 Java 中添加大的特性需要更长的时间,因为这种事不能掉以轻心。Java 13 中将带来 switch 表达式在 Java 12 中已经作为一个预览特性提供。预览版让开发者可以体验一下新特性,并提供反馈,以便后续加以改进。

Amber 项目继续给 Java 语法锦上添花,在未来的版本中,Amber 会有更多的东西被加入到 Java 中。
不管你喜爱还是讨厌 Java,Java 都会在 OpenJDK 大神们的努力呵护下变得更好,成为这个星球上更受欢迎的开发平台。

原文链接:
https://www.azul.com/love-it-or-hate-it-java-continues-to-evolve/

声明:本文版权归原作者所有,文章收集于网络,为传播信息而发,如有侵权,请联系小编及时处理,谢谢!

欢迎加入本站公开兴趣群
软件开发技术群
兴趣范围包括:Java,C/C++,Python,PHP,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流
QQ群:26931708

Hadoop源代码研究群
兴趣范围包括:Hadoop源代码解读,改进,优化,分布式系统场景定制,与Hadoop有关的各种开源项目,总之就是玩转Hadoop
QQ群:288410967 
1

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

相关阅读

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

 

GMT+8, 2019-10-17 21:16 , Processed in 0.231431 second(s), 24 queries .