大家谈 18 岁的 Java——李刚:Java 需要引入更多的新的探索

  • 杨赛

2013 年 6 月 14 日

话题:JavaJVM语言 & 开发

2013 年,已经进入第 18 个年头的 Java 仍然是 InfoQ 上最受欢迎的话题,最近的《详细分析 Java 中断机制》、《关于 Java 性能的 9 个谬论》、《深入理解 Java 内存模型》等系列文章,一直占据 InfoQ 阅读热榜的首位。同时,今年 7 月的JavaOne购票入口)再次选择了中国,7 月 22-25 日将在上海世博中心举行连续 4 天的会议,话题涵盖核心 Java 平台、JavaFX 与用户体验、Java EE 和 Web 服务 / 云,以及 Java ME/Java Embedded/Java Card 等技术领域。

2013 年,在云计算、大数据、移动互联网等话题占据了人们所有的注意力的时候,Java 的状态到底如何?近期,InfoQ 中文站将对业内几位资深 Java 项目作者与书籍作者进行采访,了解他们眼中 Java 的现状,以及他们对 Java 未来的看法。

今天受邀参与采访的嘉宾是疯狂 Java 创始人,广州为学教育科技有限公司疯狂软件教育中心教学总监李刚老师(@疯狂 Java 李刚)。

InfoQ:Java 语言给您留下的最初印象是什么?您最初的 Java 项目是什么样的?

李刚:大约在 1999 年的时开始接触 Java 时,当时感觉 Java 仅仅只是在网页上做一些有趣的 Applet 动画, Applet 可以让传统静态的 HTML 网页“动起来”,而且能响应用户动作,因此这些 Applet 动画极大地吸引了我,于是我开始学习 Java 语言。至于第一个 Java 项目,那时候还在大学读书,我所做到第一个有印象的 Java 项目是完全用 JSP 兼职做的一个客户收集、跟踪、反馈系统。当时的 JSP 还停留在 Model 1 的层次,后来看那个项目在很多地方都存在问题,所以后来对,J2EE 许下的“承诺”无比欣羡,又义无反顾地投入 J2EE、EJB 的怀抱。

InfoQ:您现在接触的 Java 项目跟那时相比,有怎样的变化?

李刚:无论早期的 Java 项目,还是现在的 Java 项目,它们本身的业务规则会随着市场、客户的改变会存在一些变化。从技术实现的角度来看,现在的 Java 语言明显要成熟多了,无论是前端技术,还是各种中间层技术,以及各种规则引擎之类,现在的 Java 语言明显更加成熟和稳定。而且现在许多软件企业已经对各种开源技术进行过一些定制,往往能更快、更稳定、更大限度地适应项目的业务。

InfoQ:您是否会推荐您在 Java 项目中的年轻程序员去掌握其他编程语言?您的首选推荐语言是什么?

李刚:对于一个真正的程序员而言,很难永远只用一门语言。对于已经掌握了 Java 这种强类型、静态语言的年轻程序员而言。至少还应该掌握一门弱类型、动态语言,通过掌握两种不同类型的编程语言,这样才能更好地进行对比。实际上,弱类型、动态语言也有很多,比如 Ruby。

InfoQ:对于一些从新锐编程语言开始入行的年轻程序员,比如 Ruby 程序员,您是否会推荐他们了解 Java?为什么?

李刚:毋庸置疑,Java 是一门应用最广泛、最有价值的编程语言,就目前的趋势来说,大型应用的服务端编程的首选是 Java,而且目前移动互联网的 Android 平台的开发语言也是 Java,无论从哪个角度来看,Java 都是发展前景最好的编程语言,因此我推荐所有程序员都应该了解、学习 Java。

InfoQ:JVM 下多语言协作开发是否能够最大化地发挥 Java 自身的优势?

李刚:在 Java 平台,目前已经存在多语言协同工作,多种语言植入 Java 平台后能够充分发挥各自的优势。各种脚本语言之所以能够流行,是因为脚本的修改、发布更加方便。而 Java 在服务端,已经成为了各种脚本语言的宿主环境,为脚本语言在企业中的应用提供了稳定、灵活的基础平台。其实这对 Java 而言不是一种替代,而是一种补充、加强。实际上 JVM 已经为多语言协同运行提供了平台,不同语言可以专门用于实现特定的组件,同时这些组件都运行在相同的 JVM 环境下,因此不同组件之间能以透明的方式调用,就像调用本身语言的 API 一样。

InfoQ:您觉得 Java 语言自身存在的挑战是什么?

李刚:就我个人感觉来看,Java 目前已经发展得比较成熟和稳定。但也许正因为这种现状,导致 Java 语言在各种新技术的探索,不如以前活跃。而任何一门技术,必须保持快速的生长和更新,不断注入新的血液。对于目前的 Java 语言来说,即使有些不成熟的探索,也会随着市场沉淀慢慢趋于理性,这样才能更好地保持 Java 的生命力。但 Java 目前最大的问题在于:Java 需要引入更多的新的探索。而 Oracle 对 Java 的重视程度似乎不够,每 2 年一次的更新也往往很难如期发布。而且这几年开源技术社区也不够活跃,很少见到真正影响力广泛的技术。

InfoQ:一旦 Java 8 走向成熟,是否可以支持现有系统向 Java 8 的成熟迁移?

李刚:当 Java 7 发布之后,我们已经在第一时间升级了《疯狂 Java 讲义》一书,全面介绍了 Java 7 的各种新特性。在 Java 7 成熟之后,在不少软件公司的技术咨询中,我都会推荐他们去尝试使用 Java 7 平台,尤其是 Java 7 新引入的 G1 垃圾回收器。当 Java 8真正发布后,我们也会在第一时间升级了《疯狂 Java 讲义》,全面介绍 Java 8 的各种新特性。至于在公司的技术咨询服务上,我会评估从原有平台迁移到 Java 8 所需的成本和风险,以及 Java 8 能给现有系统带来的好处。是否应该把一个现有系统迁移到新平台,往往是一个综合、折衷的考虑,很难直接给出答案。

InfoQ:能否谈谈目前 Java 开源社区的一些变化?开源社区对 Java 发展起到了哪些推动?

李刚:总体来说,现在 Java 开源技术社区发布的新技术太少,很少听到影响广泛的开源技术,让人感觉 Java 不如前几年活跃。在这方面,其实 Oracle 应该多做一些技术前瞻性的引导,同时也可以加强与开源技术社区的互动,从而为 Java 语言注入更多的血液。就像以前 Sun 公司,他们推出的 J2EE 平台,他们的各种前瞻性的设计思想和理念,直接催生了后来的 Hibernate、Spring 等各种开源技术。希望 Oracle 能通过 Java 发布一些更前沿、更先进的技术,这样也能激发开源社区对 Java 的热情,让 Java 不断融入新的技术热点。

JavaJVM语言 & 开发