近日InfoQ荣幸邀约Cay Horstmann,就Java最新形势和Cay的新书Java核心技术:卷一&卷二(第九版)进行探讨。 自1995年首版发布以来,Java历经多次变更:从语言规约的扩充到Oracle并购Sun后所有权的变动。本次访谈的第一个话题是Oracle的Java管理。 InfoQ:您如何看待这些年来Oracle对Java的管理?可以谈语言特性,也可以谈商业运作,诸如在JRE Installer中绑定第三方浏览器工具栏。 Horstmann:我并不喜欢工具栏绑定。这一点Oracle表现得很矛盾。一方面,他们投入大量资源改进Java,另一方面,他们又在做些不利于Java的事。过去很长一段时间Java的安全处理都很差劲,不过如今正迎头赶上。Oracle的管理是把双刃剑。 InfoQ:所以Oracle会否认问题直到发现可行解? Horstmann:我想那会是一种很好的处理方式,虽然不受待见。此外,Oracle和Google的诸多诉讼会让很多人不喜欢Oracle。 InfoQ:确实。整体看来,Android有点像Java平台的大使。Google选择了Java,Java的开发需求量会因此增加,Java的整个市场渗透率也会随之提升。 Horstmann:诚然。Sun不曾为Oracle留有任何有利市场。多年来,Sun一直对Java ME(Java平台的微型版)手机寄予厚望,但人所共见,ME日渐没落直至灭亡。此外,Sun未发布智能手机提案。 InfoQ:你是一名作者,也是计算机系教授。你教Java是由于学生有学用Android开发的意愿,还是个人或校方的要求? Horstmann:任何课程引进新语言都要付出巨大代价。任何语言的熟练掌握和高效运用都要学生付出一学期以上的时间。所以,课程设计时要有选择性。一方面,Java有很强的适用性:从最简单的作业,到数据库课程,网络课程和Android移动开发课程。另一方面,与教学生十种语言相比,以Java,C和函数式语言等典型语言为例传授基本概念才是教师的职责。 InfoQ:你在移动开发课程中使用的是哪种语言? Horstmann:过半的学生用iPhone,因此,我想让他们有一些iOS开发经验,诸如他们所关心的如何让应用程序上机、上架。总体上看,课程会有50%的Android,30%的iOS和20%的HTML5(移动JQuery,PhoneGap平台)。 InfoQ:这种分授方案在学生中反响如何? Horstmann:这种多重视角大有裨益,学生们很感激。但最终,绝大多数学生更愿意在Android平台上工作。 InfoQ:你认为Java未来的落点在哪?基于Android的开发? Horstmann:服务器端,特别是大型购物网站,还会用到很多Java。我观察过周边的初创企业,有很多没有选择Java。我不知道他们是否有特定原因。与这部分人交谈,问到“是哪些考虑使你在技术决策中放弃了Java?”答案多是“我不知道,我不了解Java。”这些公司中的整整一代年轻人都不了解服务器端Java。像我会觉得境况堪忧。Oracle并没有做出足够的努力来向人们证明最新发布的Java实际上很好用。Java已不是一门艰深的学问。现阶段的Java EE很简单,支持工具极多。 InfoQ:就初创企业而言,Java并不是因此不受待见。 Horstmann:Oracle更倾向于为有能力购置昂贵设备的大型机构做调研。但很多创新,特别是硅谷中的创新,更多发生在小团队中。这部分人用Rails,用Node.js,而不会用服务器端Java。有时这并非技术原因。有时连他们自己都不知道有何损失。 InfoQ:关于最新版本的Java 7或者即将到来的Java 8,你认为Oracle是该致力于解决 “时尚因素”问题,还是该解决营销问题,比如如何营销服务器端的优势? Horstmann:我认为Java服务器端的营销确实有问题。就服务器端开发而言,经营良好的语言应有广阔的市场,包括用这种语言处理问题得心应手,包括语言背后良好的工具支持。可极少会有人建议“可以试试Java。相比若干年后时兴技术X可能遭遇的各类瓶颈,初用Java应该会更高效。” |