| |
到今年五月,java已经走过了它辉煌的十年。我们邀请了世界各地的开发高手一同回顾java语言发展的第一个十年,评析她今天所处的位置并预测其今后的发展趋势。与会者(包括知名it企业sun、ibm、bea及borland等)反映各异,但有一点是共同的??java的地位将一如既往举足轻重。 一、简介 2005年5月标记着自从sun第一个引入java技术以来经历了整整10个年头。在过去的10年中,java语言已经变为一个平台,一个社团和一个生态系统。在这些环境下,软件用户、开源工程以及个体开发者等茁壮成长。今天,大约有四百五十万java开发者和大约1.4亿台设备上使用着java。 我们不空谈java的成功故事。代替的是通过分发调查问卷(每发展一年提问一个问题)来搜集个人的java使用经验,这些人大都是精于java技术的开发者。回答者包括各个层面的人,从咨询师、作家到bea、ibm、sun等大公司的cto和资深技术人员。 下面是一些我们收到的令人瞠目的回答。 1. 你是如何开始使用java编程的? java吸引了每个人的注意,从程序开发人员到…… "当java还称为oak的时候我就用它进行编程,大约是在1993年的下半年或者是1994年的上半年。当时我在sun labs率领一个研究小组。一旦我们使用java开发,我们就注意到使用java的最大优点是,它能以一种合理的安全的方式从一个虚拟机迁移到另一台虚拟机。",这是jim waldo(sunlabs的杰出工程师)的回答。 rod smith,作为ibm软件开发小组中处理突发技术的副主席,写道:"我们看到了,java平台是一种足够好的技术,它具有在计算机工业界成为一支重大的独成系列的力量的潜力。我们认为,我们最好要赶上这班时代列车并采纳sun的java技术而不再依赖于以前的模式-自己开发每一件东西。" ed cobb,bea systems公司cto办公室架构标准的副主席,写道:"我们可以选择其它主流的面向对象语言,但是java提供了一种更好的组合特点使它适合于团队环境下的大规模开发。" "在过去十年中的大部分时间里,我受雇于sun。因此,我不得不说,java"突然来到"我的身边。如果不是这一突然性的到来,我们也会需要另外一种似java的东西来叩开业界中正迅速发展的网络计算环境的大门。"-rob gingell,cassatt corporation的执行副主席和cto。 ...对那些勤奋的计算机系的大学生们... michael pilone,作为blueprint technologies的资深软件工程师,他的回答是:"当时我盘算着我将来得找一份体面的工作,所以虽然我在大学中所学全部是c++,但是我还是另外自学了java。" "在我上硕士期间,我的指导教授让我用java工作,结果我用java 1.0 beta版完成了我所有的功课。"-raghu donepudi,环球计算机公司的系统开发领导者。 ...对那些热衷于编程的狂热者... "我一毕业即用java开始工作,我惊喜于java的wora的前景和applets。"-jack herrington,作为code generation in action (manning)的作者和code generation network的编辑。 "我甚至在1.0版本之前就开始学习java了,因为其开发目标是作为微软工具(vb和visual c++)与pascal语言的可选替代者",laurent ploix写道,他是sungard-finance公司的工程总管和技术架构师。 "在1997年,我带着一本手册作为度假读物,在海滩度假的日子里,我沉浸在java的优美之中。我转向了java,并宣布c++是一种传统的语言,并发誓一旦选择了java,永不回头。"-vlad patryshev,borland公司java business unit的前任r&d工程师。 2.java宣称的"编写一次,到处运行"效果怎么样(wora)?一直以来,wora的重要性改变了多少? "java虚拟机,至少在概念上,是java背后最强有力的思想。它的确实现了它许诺的轻便性。"-bruce tate,j2life, llc(一家java技术咨询公司)的主席。 "应用服务器和j2ee应用程序可以在多种平台上良好地迁移。我认为在客户端上实现wora还是相当值得怀疑的,也许永远不会实现。"-michael pilone "它对我简直是一个不可捉摸的平台。"-vlad patryshev "java的早期成功根本上在于wora。与其它可选择工具相比,java带给了(并将进一步带给)si(系统集成商),isv(独立软件开发商)和软件工程师们一个根本不同的经济环境。"-rod smith "java在wora方面的性能:a)比任何它之前的工具要好;b)就目前而言,与另外一些可选工具相比仍然要好得多;c)将作为java价值的一个关键部分继续保持下去。"-rob gingell "wora每次都带给我极大的便利。我总是在windows平台上进行我的java开发;但是,我总是毫不费劲地把这些代码发布到solaris 或者linux 环境中去。"-eric bruno,一个独立的咨询师,擅长于软件架构,企业java和c++开发。 "你可以把字节代码转换成msil(ms中间语言),而且你可以在j#中运行java程序。这使我们可以针对我们产品的java和.net环境只保留一份代码即可。"-michael r. smialek,knowledge dynamics的主席和ceo "我经常跨windows,linux和sun solaris开发,测试和发布java代码,而仅需对xml配置文件作较少的改动。但是,随着面向服务的结构的出现,wora的重要性已经减弱了。"-kyle gabhart,作家和独立咨询师 "象perl,ruby和python等语言一样轻便。"-jack herrington "一些人认为,由于通用操作系统的数目的下降,wora将变得不再如以前那么重要。事实上,即使只有两种合理的可能的目标平台存在,wora就一直是重要的。"-ed cobb 二、客户端java及开发工具选择 3.你用java编写过多少代码?估计你将来的工作有多少会用java实现? 几乎所的的回答者声称java是他们主要的产品编码工具,大多数人选择他们的java使用率超过70%。没有人认为他们下一步的java开发使用率会降低。 "去年,我们利用java 技术开发出了800多个商业产品。几乎我们所有的中间件都依赖于java运行时刻库。"-ibm的rod smith "在我们的顾客中,我们仍看到具有可以预料的潜在需求的大量c/c++功能第一型的应用程序。他们经常愿意用java进行开发,而java虚拟机技术目前正发展到正好能够处理这些类型系统的时候。 在web应用程序开发中,我想,当人们的应用程序变得越来越大且越复杂时,我们将看到针对动态类型语言会出现一点后推力作用。他们将经受运行时刻类型异常--事实上,他们早已认识到,如果采用象java一样的强类型语言的话,这是可以避免的。"-bea公司的ed cobb 4.你用java开发桌面应用和服务器应用的比例为多少?如果你开发过桌面应用程序,你更喜欢用swt还是swing,为什么? bruce tate对这一问题的回答总结了所有其他人的观点:"服务器端java正是它应有的位置。" 至于,客户端java开发,众说纷纭... "swing太复杂,太不可预测,太难学。swt则好一些,但一般而言,java在用户接口设计上很不成功。"-tate,《better, faster, lighter java》和《bitter java》的作者 "我认为swt有更好的方法,它链接到本地lib库文件以达到加快速度和一致性的目的,但是我并不喜欢这些api,因为它们暴露出太多的老式的编码技术。相比之下,swing有一个更好些的api,但是其中充满错误、性能低下且设计糟糕。"-michael pilone "我更喜欢swt...它比swing更具本地化,swing而可以说只是粗略地实现了本地化。"-ed cobb "我写swing应用程序,然后使用java web start来进行发布。我还没有出卖过我的swt型程序,因为它仅有有限的跨平台支持并缺乏可靠的mvc设计。"-kyle gabhart 5.你使用的java开发环境是什么? 很明显,当前流行的eclipse框架和集成开发环境是大多数对这一问题的回答,因为其是windows和linux平台的主流环境。只有另外少数的回答者指定了其它几个选择: "我选择的平台是winxp pro。在安装了cygwin和另外几个开发工具后,你就可以得到一个具有硬件支持的非常有用的系统了。"-michael pilone "我特别喜欢j2se 5。说到ide,我更喜欢jbuilder,其次是idea。idea中有一些巧妙的实现,但是良好的经典的jbuilder具有我需要的任何东西。"-vlad patryshev "我一直使用emacs开发而用println进行调试。最近我在使用netbeans,已惊奇于它给我带来的巨大帮助。"-jim waldo "请不要使用ejb!"-laurent ploix "visual café。"-smialek "在必要的时候,我都使用vi进行开发。"-kyle gabhart 三、开源,jcp和对java的希望列举 6.jcp和开源社群谁在java更新上的贡献更大? "到目前为止,应该说是开源的贡献更大。而jcp在进行实际的开发实践之前,推崇标准化的作用。ejb,日志以及持久性一直是jcp中的灾难。实际上jcp在抛弃着java的根基。很难的问题在拐弯抹角变得易于解决,而容易的问题反而在变得越来越难于解决了。"-bruce tate "开放源码的执行领导着开发过程,而jcp仅仅是定义了一些标准。"-laurent ploix "如果说纯粹的革新,我将选择开源。当工程中存在漏洞需要补全时,开源是能够迅速得到响应的。而jcp目前是一种太慢的方式,以至于根本跟不上工业发展的步伐。"-michael pilone "多数的革新经历了jcp模式。但是,在过去的几年中,我们看到了在开源模式中的活动不断增加的迹
|
|