最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

  • 2019-06-28
  • 本文字数:1954 字

    阅读完需:约 6 分钟

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

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 RailsScalaKotlin了。


为此,我最近在思考一个问题,那些肩负 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/


2019-06-28 17:0029431
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 377.3 次阅读, 收获喜欢 1972 次。

关注

评论

发布
暂无评论
发现更多内容

GitLab与代码管理的高效协同:流程平台的应用与优势

测吧(北京)科技有限公司

测试

云MySQL主备切换

腾讯云混沌演练平台

故障注入 混沌演练 主备切换

聚道云软件连接器助力金融科技公司,提升企业管理效率

聚道云软件连接器

案例分享

和鲸科技与智谱AI达成合作,共建大模型生态基座

ModelWhale

大模型 AIGC ChatGLM 科研 智谱AI

用 Easysearch 帮助大型车企降本增效

极限实验室

索引 快照 降本增效 数据压缩 easysearch

Jira项目进度管理深度解析:里程碑、燃尽图、负责人跟进

测吧(北京)科技有限公司

测试

测试用例管理工具对比:Redmine vs. TestLink vs. 禅道

测吧(北京)科技有限公司

测试

每日一题:LeetCode-123. 买卖股票的最佳时机 III

半亩房顶

面试 算法 LeetCode 动态规划 滚动数组

网络发展历程及SD-WAN的优势

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商

再获殊荣!和鲸科技入选2023年中国云生态创新明星企业

ModelWhale

人工智能 云计算 基础设施 创新 荣誉

春节活动“龙”重登场,三大领域创意应用等你来挑战!

飞桨PaddlePaddle

百度 paddle 飞桨 应用开发 春节活动

喜报|博睿数据算力调度可观测平台荣获信通院“算力服务领航者计划”优秀案例

博睿数据

可观测性 运维监控

飞书OKR管理系统:打造高效团队目标达成的利器

测吧(北京)科技有限公司

测试

大模型技术驱动直播变革,开启全新互动体验!

中关村科金

音视频 直播 大模型

Axios request 封装指南:简化你的 JavaScript HTTP 请求

Liam

JavaScript 程序员 前端 HTTP axios

华秋携手省油灯:共创高效储能未来

华秋电子

选300平米别墅还是90平米小平层?一文带你读懂PolarDB分布式版集分一体化

阿里云数据库开源

数据库 阿里云 分布式数据库 polarDB PolarDB-X

Pudgy Penguins NFT 概览与数据分析

Footprint Analytics

区块链游戏 NFT

华秋助力扬兴打破垄断,推动晶振国产化进程

华秋电子

晶振

阿里云效平台在项目流程中的特色与应用

测吧(北京)科技有限公司

测试

吸引企业选择的SD-WAN四大亮点

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商

USDT TRC20钱包开发:详细解析

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

不管你爱与不爱,Java都在变得更好_文化 & 方法_Simon Ritter_InfoQ精选文章