大家谈 18 岁的 Java——朱鸿:开过跑车后再去开大巴车总是有点不爽的

阅读数:4577 2013 年 6 月 11 日

话题: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 未来的看法。

今天受邀参与采访的嘉宾是淘宝的资深架构师朱鸿(@hugozhu),花名一粟。朱鸿在 Java 方面有大量开发经验。最近,他在关注树莓派(Raspberry Pi)和 Go 语言。他的个人网站是http://hugozhu.myalert.info

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

朱鸿:Java 的最初印象是成熟,强大,功能全面。最早是在 2000 年使用 Java 开发 Web 应用。

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

朱鸿:实际上变化并不是很大,多了可支持并发的集合,Servlet 3.0 以及 NIO 的使用。还有就是以前的 Java Swing 项目到现在的 Android 项目转变。

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

朱鸿:我会推荐他去掌握其他编程语言:至少一门适合快速完成任务的脚本语言,可以是 JVM 之上的 Groovy,Clojure,Scala 等,也可以是 Python,Ruby,PHP 或 Perl。如果非要我只推荐一个,我觉得会是 Go 语言。

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

朱鸿:我感觉不太需要了,除非他们想去开发 Android 客户端 App 了。开过跑车后再去开大巴车总是有点不爽的,虽然视野更广了。

InfoQ:过去一年,Java 平台在安全性方面面临较多争议。当您收到 Java 平台被曝出漏洞的消息之后,会进行什么防范措施吗?

朱鸿:我主要是做服务器端的 Java 开发,在服务器端 Java 的安全性问题还好,不用每天盯着看。

InfoQ:不少传统的 Java 应用开发者最近都开始尝试 Scala、Node.js 等新的编程语言,编写出来的应用在编写效率、资源消耗等方面相比 Java 有很多优势。毫无疑问,新技术大量出现,老技术的适用范围会被部分替代。您认为 Java 的应用场景有哪些适合被替代,哪些不适合被替代?

朱鸿:Scala,Node.js 或 Ruby 在资源消耗上其实和 Java 相比应该没有优势,主要的优势还是体现在开发效率上,这方面有待 Java 8 去改进了,大家都知道这大概是 1、2 年以后的事了。移动客户端的 Android 开发,服务端的大数据处理如 Hadoop 和 Storm 等还是 Java 展现其活力的增量市场;我觉得 Web 前端应用层的开发会被更轻量级的技术替代,但服务层,中间件等还是 Java 的优势所在。

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

朱鸿:得看具体项目了,不建议同时用太多语言,2 个语言互补一下比较好。

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

朱鸿:语言改进牵涉面比较多,进展很缓慢。

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

朱鸿:这个应该可以有。

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

朱鸿:Java 开源社区目前还是比较活跃的,开源社区显然对 Java 的发展有巨大的作用,有非常多优秀的开源 Java 程序应用在我们的项目中。