时到昔日,Java已经走过了它辉煌的十几年。我们邀请了世界各地的开发高手一同回顾Java语言开展的这十几年,评析她今天所处的位置并预测其今后的开展趋向。与会者(包括知名IT企业Sun、IBM、BEA及Borland等)反映各异,但有一点是共同的——Java的位置将一如既往无足轻重。
一、简介
在过去的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的前任RD工程师。
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和环境只保管一份代码即可。"-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