写点什么

讨论:Java 的发展趋势向好向坏?

  • 2013-10-29
  • 本文字数:2546 字

    阅读完需:约 8 分钟

Java 语言在业界的重要地位不容置疑,但是随着多种新语言的诞生和各种老语言的复兴,也由于 Java 自身的一些问题,在开发社区中时不时的会有唱衰 Java 的言论出现,那么事实到底是怎样的?每个人都有自己的看法,资深评论家 Andrew Binstock撰文分析了Java 的发展现状和趋势,并看好Java 的未来前景。

Andrew 承认 Java 语言是有一些冗长,但并不认为它在衰亡——没有证据支持这一点。他说,Java 是有些啰嗦。Java 7 在一年半前问世,在此之前,编写一个像写文件这样简单的任务需要冗长的、多步骤的过程,这些过程含有各种“仪式”。针对编程任务普遍冗长这一状况,人们推出了几种脚本语言,旨在帮助开发者从长句法段落得到解脱进而采用简单动作进行交流。这些脚本语言包括 NetRexx、Groovy、Scala 等。我本人是 Groovy 的粉丝并将它应用在了我的项目中。但这是因为 Groovy 的附加功能(可选类型、闭包、方法注入、元编程等)而不是因为它的简洁性。即使是新推出的 Java 7,开发者也合理的指出了有些类和方法的名字实在太长了,例如 MethodExpressionValueChangeListener 这个名字实在是打起来费劲记起来困难。不过,我认为想开发一种有能力支撑企业运算的主平台语言和库,要求它不出现长的、描述性的名字是不大现实的。相对于短小难懂的名字,例如 C 标准库中的 strstr(),我个人更喜欢长的、描述性的名字。简洁并不一定是最好的。尽管冗长,Java 仍然可以减少其执行很多任务时所需的“仪式”。

接着,Andrew 从另一个角度分析了 Java 的繁荣程度。JavaOne 是 Java 程序员的年度大会,相比较于前两年,最近的一场大会更大、更好,参与的人也更多。我和展台的供应商交流过,他们和我的观点是一致的(真的没有一个人例外),他们都表示今年的关注度都远高于去年,而去年的也比前年的要好。通常,当某种技术开始衰落时,我们最先在它的展会上发现征兆:供应商不想为参与人数少的展会花钱,开发者也需要把他们的旅行经费花在更有价值的事情上。于是,当一个展会冷清得像墓地时,我们就可以知道这种技术的死期到了。

从技术角度上讲,Andrew 认为 Java 语言在不断地进步。

正如我所提到的,不管是在语言水平还是 JVM 水平,Java 7 都是一个重要的版本。而预计明年 3 月问世的 Java 8,更值得我们期待。Java 9 的一些特性已经发布,并预计在 2016 年发布。与 Sun 公司之前对 Java 的管理方式不同,Oracle 公司坚持每 24-30 个月更新一次 Java 版本这一目标。Java 8 将会加入闭包(也就是 lambda 表达式)。闭包减少代码,减少需要的匿名内部类,并促进函数式编程。更好的模块性(这个将在 Java 9 中进行完善)将帮助有效管理部件,而几项用来简化语句的改进也将出现在这个版本中。

JavaFX 仍在不断完善中,并且它比 Swing 语句简单的多。当今对用户体验的关注给 Java 带来了很大的发展机会,它的发展甚至可能比我们预期还要好。Oracle 敏锐地注意到了 Java 在小型设备中扮演的角色。据该公司描述,当今有 30 亿台手持设备在运行 Java。Oracle 集成了前 JavaME 与 JavaSE 版本,并积极地推动 Java 的发展以迎对即将到来的物联网浪潮。Eric Bruno 在 IoT 的一篇博文描述了一个用来监控 JavaOne 会议出勤情况的项目。这个项目从前端摄像头到后端实时分析都是用 Java 语言写的。Java 语言既能在小型设备上运行又能支持大量的企业级系统,应用如此广泛的平台和语言并不多。

安卓的本地开发语言是 Java 语言,因此当我们把 Android 生态系统列入考虑范围后,我们更难去说这门在多领域广泛应用的语言——应用在服务器、网络、桌面、移动设备——正在处于衰落阶段。

同时,JVM 的生态系统很健康,这是证明 Java 没有在衰退的更有力的证据。JVM 也在随着语言版本的更新而更新。Java 7 中新加入的字节码(包括 invokedynamic),这体现了 JVM 表现的有多优秀。当 JVM 中增加了实现 Ruby、JRuby 指令的本地支持后,它的性能已经远远超越了基于 C 的 Ruby VM。而基于 C 的 Ruby VM 多年来一直是 Ruby 的参考平台。

Andrew 最近参加了由“No Fluff Just Stuff”组织的 SpringOne 2GX 大会,而这个大会展现了 Groovy 社区有多活跃(尽管它很安静)。VMware/Pivotal 依旧依赖于 Groovy 和 Grails,并且语言和框架都从持续的投资中受益。

在这里我不再谈其他主要的 JVM 语言,我只想说一点——今天最流行的 Lisp 实现是 Clojure,它是运行在 JVM 上的,并且三年前它还是不为人知的。

GitHub 是人们今天保存项目的“圣地”,来自 GitHub 的数据显示,在去年和今年的项目所选编程语言排行榜中,Java 均名列第三。(它排在 JavaScript 和 Ruby 后面也是有一定历史原因的:GitHub 最初主要是用来存储 Ruby 语言的工程的。) 在较有争议的 Tiobe 索引中,Java 排在第二,位列 C 之后。(自从 2002 年以来 C 和 Java 交替占据着一二名的位置。)Ohloh 是开源社区中最大统计门户网站,过去的七年 Java 始终在 Ohloh 中保持同样的比例。

因此,Andrew 认为,他所看到的是一门在不断改进和发展的语言,它有一个规模庞大并且活跃的社区,它拥有一个广泛应用新语言的平台。从这之中看不到任何这门语言在衰落的迹象。不过,受困于连续出现的安全问题,Java 8 发布时间推迟到2014 年。Oracle 的Java 平台组首席架构师Mark Reinhhold 在其博客上宣布,Oracle 决定将Java 8 的发布时间推迟4-6 个月。Reinhold 提到,Oracle 正在全力解决近来引发公众关注的这一波安全漏洞问题, Java 8 项目组不可避免地被抽调走了很多工程师。他说,“维护Java 平台的安全性,其优先级总是比开发新功能要高,所以这些工作不免会抽调一些正在进行Java 8 开发的工程师。”此外他还强调,为改进代码质量并减少缺陷,Oracle“升级”了开发流程。看起来Java 8 GA(General Availability)版本的发布时间会从原计划的2013 年9 月推迟到2014 年第一季度。这已经是该版本的第二次跳票了。Java 8 最初计划于 2012 年底发布,后来受 Java 7 开发延期的影响,被推迟到了 2013 年 9 月,并且放弃了 Jigsaw 项目。目前这次延期也会波及到 JDK 9,我们预计 JDK 8 将于 2014 年第一季度发布,而 JDK 9 则从 2015 年推迟到 2016 年初。InfoQ 去年 7 月曾报道过,Java 8 放弃了 Jigsaw 项目,而且 Reinhold 否定了该项目再次进入 Java 8 的可能性。

2013-10-29 06:175231
用户头像

发布了 501 篇内容, 共 273.1 次阅读, 收获喜欢 62 次。

关注

评论

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

百度AI搜索全面接入DeepSeek R1 最新版 进一步强化智能搜索体验

科技热闻

故障定位系列:波动度故障

乘云数字DataBuff

智能运维 运维监控 故障复盘 故障排除

低代码时代,让“双手”再解放一点

秃头小帅oi

详解鸿蒙仓颉开发语言中的计时器

幽蓝计划

今年行情回暖了

王中阳Go

Go 就业

更强劲,更高效:智源研究院开源轻量级超长视频理解模型Video-XL-2

智源研究院

Spring AI 结合DeepSeek使用教程

知识浅谈

《Nginx核心技术》第1章:安装Nginx

冰河

nginx 程序员 高可用 系统架构 架构师

艺术品NFT系统的开发流程

北京木奇移动技术有限公司

软件外包公司 区块链NFT 艺术品NFT

客户为纲,万目皆张——中烟创新致烟草客户的一封信

中烟创新

艺术品NFT的开发框架

北京木奇移动技术有限公司

区块链技术 软件外包公司 音乐NFT

恒普达:科技赋能公共安全,智领数字时代新未来

极客天地

Linux下版本控制器(SVN) -命令行客户端

刘大猫

人工智能 svn 算法 大模型 tortoiseSVN

基于 Amazon Q Developer CLI 和 Amazon Bedrock Knowledge Bases 实现智能问答系统

亚马逊云科技 (Amazon Web Services)

鸿蒙仓颉语言开发实战教程:购物车页面

幽蓝计划

鸿蒙仓颉

2025年5月文章一览

codists

Python

库存搞不好,利润掉一截!别让库存吃掉你的利润!

积木链小链

数字化转型 智能制造 库存管理

LlamaFactory × 多模态RAG × Chat-BI,万字长文揭秘RAG进化迷踪,打造专业AI助手!

商汤万象开发者

AI 大模型 LLM

Next的Seo实践

溪抱鱼

next

通义灵码 AI IDE 正式上线,智能体自动写代码,首创自动记忆,工程感知全面升级

阿里巴巴云原生

AI 通义灵码

艺术品NFT系统的运营

北京木奇移动技术有限公司

区块链技术 软件外包公司 音乐NFT

烟草行业专卖人员画像与队伍考评系统(信创版)上线运行

中烟创新

HarmonyOS Next 弹窗系列教程(1)

万少

鸿蒙 HarmonyOS

超实用!Dify快速接入本地MCP服务

王磊

七牛云存储基于时间戳防盗链的算法JAVA实现

Chris Zhang

Java 七牛云存储 安全 防盗链

NITF 2025 聚焦核电数智化,时序数据库 TDengine 分享亿级数据处理方案

TDengine

tdengine 时序数据库 数据库·

20种数组去重的方法

溪抱鱼

JavaScript 前端

UCSXD-好的用户体验课程是怎样的?

科技热闻

Vinexpo Asia 2025于新加坡举行,在变局中为东盟酒饮贸易指明方向

极客天地

2025年测试人必看:AI+Playwright让自动化测试效率飙升200%?

测试人

人工智能 软件测试

从源码角度分析Spring Boot中日志系统的配置

喝水不抬头

Spring Boot logback 自动配置 Configurator

讨论:Java的发展趋势向好向坏?_Java_崔康_InfoQ精选文章