扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
我们不空谈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
Café。-Smialek
在必要的时候,我都使用vi进行开发。-Kyle Gabhart
濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴濐潟閳ь剙鍊圭粋鎺斺偓锝庝簽閸旓箑顪冮妶鍡楀潑闁稿鎹囬弻娑㈡偄闁垮浠撮梺绯曟杹閸嬫挸顪冮妶鍡楀潑闁稿鎸剧槐鎾愁吋閸滃啳鍚Δ鐘靛仜閸燁偉鐏掗柣鐘叉穿鐏忔瑧绮i悙鐑樷拺鐟滅増甯掓禍浼存煕閹惧娲撮柟顔藉劤鐓ゆい蹇撴噳閹锋椽姊婚崒姘卞闁告娲熷畷濂稿Ψ閵壯勭叄婵犵數濮撮敃銈団偓姘煎弮瀹曪綀绠涢弮鍌滅槇婵犵數濮撮崐缁樻櫠濞戙垺鐓曢悗锝冨妼婵′粙鏌曢崶褍顏€殿喕绮欐俊姝岊槹闁逞屽墯鐢繝寮婚悢鍏煎癄濠㈣泛锕ュ▓濠氭⒑閸濆嫮鐏遍柛鐘崇墵楠炲啫饪伴崼婵堝幐闂佺ǹ鏈粙鎾广亹鐎n喗鐓熼幖娣€ゅḿ鎰箾閸欏顏堟偩濠靛牏鐭欓悹鎭掑妽濞堥箖姊洪崜鎻掍簼婵炲弶鐗犻幃鈥斥槈閵忥紕鍘遍柣蹇曞仜婢т粙鎯岀€n偆绠鹃柛顐ゅ枑閸婃劖鎱ㄦ繝鍕笡闁瑰嘲鎳愮划鐢碘偓锝庝簼閻d即姊绘担瑙勫仩闁告柨顑夊畷锟犲礃閼碱剚娈鹃梺闈涚箞閸婃洟宕橀埀顒€顪冮妶鍡楀闁稿骸宕惃顒勬⒒閸屾瑧鍔嶉悗绗涘懐鐭欓柟瀵稿Л閸嬫挸顫濋悡搴$睄閻庤娲戦崡鍐茬暦閸楃倣鐔兼⒐閹邦喚娉块梻鍌欑窔濞佳囨偋閸℃稑绠犻幖娣灪閸欏繑銇勯幒鍡椾壕闂佸疇顫夐崹鍧楀春閵夆晛骞㈡俊鐐插⒔閸戣绻濋悽闈浶為柛銊︽そ閺佸鏌ч懡銈呬沪濞e洤锕俊鍫曞川椤斿吋顏¢梻浣呵归鍛村磹閸︻厽宕叉繛鎴欏灩楠炪垺淇婇婵愬殭缁炬澘绉归弻锝嗘償閵忥絽顥濆銈忓閺佽顕g拠宸悑闁割偒鍋呴鍥⒒娴e憡鍟為柟鎼佺畺瀹曠増鎯旈…鎴炴櫔闂佹寧绻傞ˇ浠嬪极閸℃ぜ鈧帒顫濋濠傚闂佹椿鍘介〃鍡欐崲濞戙垹绠婚柡澶嬪灩閸斾即姊虹粙娆惧剱闁圭懓娲濠氭晲閸涱亝顫嶅┑鐐叉閸旀洜澹曢幎鑺モ拺闁告繂瀚﹢鎵磼鐎n偄鐏撮柛鈺冨仱楠炲鏁冮埀顒€顔忓┑鍥ヤ簻闁哄洨鍋為崳娲煃鐠囪鍔熺紒杈ㄦ崌瀹曟帒鈻庨幋婵嗩瀴婵$偑鍊戦崝宀勫箠濮椻偓楠炲棗鐣濋崟顐わ紲闂佺粯鍔欏ḿ褏绮婇敃鍌涚厵闁稿繗鍋愰弳姗€鏌涢弬璺ㄧ劯闁诡喚鍋ゅ畷褰掝敃閻樿京鐩庨梻浣告贡閸庛倝宕归悽鍓叉晜闁冲搫鎳忛崐鍨叏濮楀棗澧绘俊鎻掔秺閺屾洟宕惰椤忣厾鈧鍠曠划娆愪繆濮濆矈妲奸梺闈╃祷閸庡磭妲愰幘瀛樺缂佹稑顑呭▓顓炩攽閳藉棗浜濈紒璇茬墕椤曪絾绻濆顓炰簻缂佺偓濯芥ご鎼佸疾閿濆鍋℃繝濠傚暟鏁堥梺璇″枟閿曘垽骞婇悩娲绘晢闁稿本绮g槐鏌ユ⒑閸濆嫷妲搁柣妤€瀚板畷婵囨償閿濆洣绗夐梺缁樺姉閸庛倝鎮″☉銏″€堕柣鎰硾琚氶梺鍝ュУ閿曘垽寮婚埄鍐╁闁荤喐婢橀~鎺楁倵鐟欏嫭绀堥柛鐘崇墵閵嗕礁顫滈埀顒勫箖閳哄懏鎯炴い鎰╁€濋幏濠氭⒒閸屾艾鈧嘲霉閸パ呮殾闁割煈鍋呴崣蹇涙煙閹澘袚闁抽攱姊婚埀顒€绠嶉崕閬嵥囬鐐插瀭闁稿瞼鍋為悡銏′繆椤栨粌鐨戠紒杈ㄥ哺閺屻劌鈹戦崱鈺傂︾紓浣插亾閻庯綆鍋佹禍婊堟煛瀹ュ啫濡块柍钘夘槹缁绘盯宕奸悢铏圭厜濠殿喖锕ㄥ▍锝呪槈閻㈢ǹ宸濇い鏂惧嫎閳ь剚鍔曢—鍐Χ鎼粹€茬凹濠电偠灏欓崰鏍х暦濞差亜鐒垫い鎺嶉檷娴滄粓鏌熼崫鍕棞濞存粓绠栧娲箰鎼淬垻鈹涙繝纰樷偓铏悙閸楅亶鏌熼悧鍫熺凡缂侇偄绉归弻娑㈩敃閿濆洨鐣煎銈嗘尰濡炶棄顫忛搹鍦<婵☆垰鎼~宀勬倵濞堝灝娅橀柛鎾寸懆閻忓啴姊洪崨濠佺繁闁哥姵宀稿畷銏ゅ箹娴e厜鎷洪梺鍛婃尰瑜板啯绂嶆禒瀣厱閻庯綆浜滈顓㈡煙椤旀枻鑰块柡浣稿暣瀹曟帒鈽夊顒€绠為梻浣筋嚙閸戠晫绱為崱娑樼;闁糕剝蓱濞呯姵銇勯幒鎴濃偓鑽ゅ婵傚憡鐓曢悘鐐插⒔閳藉绱掑锕€娲﹂悡娆撴煟閻斿憡绶叉い蹇e弮閺岀喖鎮℃惔銏g闂佺懓寮堕幐鍐茬暦閻斿吋顥堟繛鎴炵懄閻濓繝姊婚崒姘偓鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈠Χ閸屾矮澹曞┑顔矫畷顒勫储鐎电硶鍋撶憴鍕缂傚秴锕濠氬幢濡ゅ﹤鎮戦梺鍛婁緱閸ㄧ晫妲愰柆宥嗙厽閹艰揪绱曢悾顓㈡煕鎼淬劋鎲鹃挊婵喢归崗鍏肩稇缁炬崘娉曢埀顒€绠嶉崕閬嵥囨导瀛樺亗闁哄洢鍨洪悡娑㈡煕閵夛絽鍔氬┑锛勫帶椤儻顧侀柛銊ゅ嵆濠€渚€姊虹紒妯撳湱绮旈鈧、鏃堝醇閻旇櫣鏆㈤梻鍌氬€烽悞锔锯偓绗涘懏宕查柛灞绢嚤濞戞鏃堝川椤撶姴骞掗梻浣告惈濞层垽宕瑰ú顏呭亗闁告劦浜濋崰鎰節婵犲倻澧曠紒鈧崼鐔稿弿婵☆垱瀵х涵楣冩煢閸愵亜鏋涢柡灞炬礃缁绘稖顦查悗姘卞厴瀹曟垿濡搁埡鍌楁嫼缂傚倷鐒﹂敋濠殿喖娲﹂妵鍕即閵娿儱绫嶉梺绯曟杺閸ㄨ棄顕i幘顔碱潊闁炽儲鏋奸崑鎾绘偨閸涘﹦鍙嗗┑鐘绘涧濡鍩€椤掑倹鍤€闁宠绉瑰畷鍫曞Ω閿濆嫮鐩庨梻濠庡亜濞诧妇绮欓幇鏉跨疅濡わ絽鍟悡娑㈡倶閻愰潧浜剧紒鈧€n兘鍋撶憴鍕濞存粌鐖奸妴浣割潨閳ь剟骞冮姀锛勯檮濠㈣泛顦辨径锟�