产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

讨论: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:174932
用户头像

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

关注

评论

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

开发者进阶必备的9个Tips & Tricks!

SEAL安全

开发者 企业号 3 月 PK 榜 开发人员

软件测试/测试开发 | 功能测试转测试开发,该如何写简历?如何与其他竞争者中脱颖而出?

测试人

软件测试 自动化测试 测试开发

面试官:你了解Spring Security 权限控制吗?

做梦都在改BUG

Java spring spring security

全局视角看技术-Java多线程演进史

京东科技开发者

jdk 多线程 Thread 企业号 3 月 PK 榜

王者荣耀商城异地多活架构设计

Geek_7d539e

再创佳绩!阿里云 4 篇论文入选顶会 FAST 2023

云布道师

阿里云 云存储

小程序成生活“标配”,成互联网商业的重要阵地

没有用户名丶

小程序化

手写模拟Spring底层原理-Bean的创建与获取

京东科技开发者

spring 接口 aop 代码 bean

接口优化的常见方案实战总结

京东科技开发者

批处理 预处理 企业号 3 月 PK 榜 接口优化 异步处理

图数据库认证考试 NGCP 错题解析 vol.02:这 10 道题竟无一人全部答对

NebulaGraph

图数据库

中移链元交易功能对接说明

BSN研习社

新兴应用场景层出不穷,电源管理芯片市场前景广阔

华秋电子

Tapdata Cloud 基础课:新功能详解之「微信告警」,更及时的告警通知渠道

tapdata

数据库·

云数据库TiDB试用初体验

TiDB 社区干货传送门

6.x 实践

干货分享!PCBA元器件间距的可焊性设计

华秋电子

面试官:JVM是如何分配和回收堆外内存的?

做梦都在改BUG

Java JVM 垃圾回收

一天约了4个面试,复盘一下面试题和薪资福利

王中阳Go

Go 面试 面试题 简历优化 大厂突击

如何通过C#/VB.NET代码在Word中更改字体颜色

在下毛毛雨

C# .net word文档 字体 段落

服务老是被攻击,如何设计一套比较安全的接口访问策略?

做梦都在改BUG

TiDB Operator备份TiDB集群到NFS持久卷

TiDB 社区干货传送门

集群管理 管理与运维 故障排查/诊断 安装 & 部署 备份 & 恢复

从 Netflix 传奇看,结果导向的产品路线图如何制定?(下篇)

LigaAI

敏捷开发 研发管理 研发效能 it路线图 企业号 3 月 PK 榜

豆瓣评分9.0!《Java核心技术与面试》神作,已助1374人拿到Offer

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

堡垒机有硬件吗?推荐使用硬件堡垒机吗?

行云管家

云计算 网络安全 云服务 堡垒机

头一次见!阿里牛人上传的600页JVM垃圾优化笔记飙升GitHub榜首

做梦都在改BUG

Java 性能优化 JVM 垃圾回收

解决80%的工作场景?GitHub爆赞的Java高并发与集合框架,太赞了

做梦都在改BUG

Java 高并发 JUC JCF

等保二级必须要上的设备有哪些?需要堡垒机吗?

行云管家

等保 堡垒机 等保二级

面试官:在高并发情况,你是如何解决单用户超领优惠券问题的?

做梦都在改BUG

Java redis 高并发

数据库日常实操优质文章分享(含Oracle、MySQL等) | 2023年2月刊

墨天轮

MySQL 数据库 oracle postgresql 性能优化

平安银行与易观千帆签约合作,加速数字用户资产增长

易观分析

金融 银行

喜讯!华秋电子荣获第六届“高新杯”十大优秀企业奖

华秋电子

TiDB Operator恢复持久卷上的备份文件

TiDB 社区干货传送门

集群管理 管理与运维 故障排查/诊断 安装 & 部署 备份 & 恢复

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