BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 杨赛 关注 3 他的粉丝 发布于 2013年6月15日. 估计阅读时间: 7 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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不断融入新的技术热点。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT