明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

Java10大熱點(diǎn)問(wèn)題調(diào)查揭曉

[摘要]值此Java十年之際,很多網(wǎng)站和社區(qū)都對(duì)Java開發(fā)人員及相關(guān)愛(ài)好者進(jìn)行了調(diào)查與訪問(wèn),下面列出十大熱點(diǎn)問(wèn)題調(diào)查結(jié)果。人們發(fā)現(xiàn),開發(fā)者對(duì)于Java存在著各種各樣的看法。下面列出有代表性的網(wǎng)友觀點(diǎn)。   1.你是如何開始用Java編程的?   ● 我在Java一出現(xiàn)的時(shí)候就開始使用它進(jìn)行編程。我為它的...
值此Java十年之際,很多網(wǎng)站和社區(qū)都對(duì)Java開發(fā)人員及相關(guān)愛(ài)好者進(jìn)行了調(diào)查與訪問(wèn),下面列出十大熱點(diǎn)問(wèn)題調(diào)查結(jié)果。人們發(fā)現(xiàn),開發(fā)者對(duì)于Java存在著各種各樣的看法。下面列出有代表性的網(wǎng)友觀點(diǎn)。

  1.你是如何開始用Java編程的?

  ● 我在Java一出現(xiàn)的時(shí)候就開始使用它進(jìn)行編程。我為它的‘一次編寫,到處運(yùn)行’的理念以及Applet感到激動(dòng)。
  ● 我在Java出1.0版本之前就開始學(xué)習(xí)它,因?yàn)槲移谕茏鳛槲④洰a(chǎn)品(我對(duì)VB和Visual C++太失望了)和Pascal的替代品。
  ● 我曾經(jīng)把Java手冊(cè)作為休假時(shí)的閱讀材料,結(jié)果被它所吸引,轉(zhuǎn)而使用Java而放棄C++,并且永不回頭。
  ● 我所在的大學(xué)一直都在教C++課程,但我卻用了很多時(shí)間自學(xué)Java,因?yàn)橄胗盟乙环莞玫墓ぷ鳌?

  2.Java曾經(jīng)承諾“一次編寫/到處運(yùn)行(WORA—Write Once, Run Anywhere)”,你認(rèn)為它兌現(xiàn)這個(gè)承諾了嗎?時(shí)至今日,你認(rèn)為“一次編寫/到處運(yùn)行”的重要性發(fā)生改變了嗎?

  ● 應(yīng)用程序服務(wù)器和J2EE應(yīng)用程序能夠在不同的平臺(tái)之間很好地進(jìn)行遷移。我對(duì)WORA(Write Once, Run Anywhere)在客戶端的效果表示懷疑,并且我覺(jué)得這些其實(shí)是不可能真正地達(dá)到的。
  ● 它讓我完全不用考慮使用哪種平臺(tái)。
  ● Java的早期成功應(yīng)該歸功于WORA。它為系統(tǒng)集成商、獨(dú)立軟件商、軟件設(shè)計(jì)師帶來(lái)不同的根本性的經(jīng)濟(jì)利益,這點(diǎn)勝于其他語(yǔ)言。
  ● WORA每時(shí)每刻都在對(duì)我發(fā)生作用。我經(jīng)常在Windows中完成我的Java開發(fā)工作,但是卻經(jīng)常在Solaris或者Linux環(huán)境上進(jìn)行不止一個(gè)的版本部署。
  ● 你能將字節(jié)碼轉(zhuǎn)換為MSIL,并且也可以用J#編寫Java程序。這給我們的產(chǎn)品為Java和.Net保留了一個(gè)代碼基礎(chǔ)。
  ● 我經(jīng)常在Windows、Linux 和Sun Solaris平臺(tái)上做開發(fā)、測(cè)試和部署Java代碼的工作,在跨越平臺(tái)的時(shí)候只用對(duì)XML的配置文件做很少的更改。但是WORA的重要性在面向服務(wù)和架構(gòu)方面有所削減。
  ● 一些人聲稱由于常用操作系統(tǒng)的數(shù)量的遞減,WORA的重要性也會(huì)隨之減弱。事實(shí)上即便只有兩個(gè)目標(biāo)平臺(tái),WORA也是非常重要的。

  3.在你現(xiàn)在編寫的生產(chǎn)代碼中,有多大比例是用Java編寫的?你認(rèn)為在可預(yù)見的將來(lái),這個(gè)比重是會(huì)增加、減少還是保持不變?
  幾乎所有的被調(diào)查者都聲稱Java是他們進(jìn)行編碼的主要工具,回答為主要工具者超過(guò)了70%的比例。在對(duì)第二個(gè)問(wèn)題的回答中,這個(gè)比例沒(méi)有降低的跡象。

  ● 去年我們對(duì)800個(gè)基于Java技術(shù)的產(chǎn)品通過(guò)了認(rèn)證,我們幾乎所有的中間件產(chǎn)品都是基于Java運(yùn)行時(shí)的。
  ● 我們?nèi)匀豢吹娇蛻魧?duì)C和C++的任務(wù)認(rèn)證的應(yīng)用程序仍然存在大量的需求。我們希望經(jīng)常能夠使用Java,但是Java的VM技術(shù)到了應(yīng)該發(fā)展成為能夠在這些不同的系統(tǒng)上運(yùn)行的時(shí)候了。

  4.在你開發(fā)的Java應(yīng)用中,桌面應(yīng)用和服務(wù)器端應(yīng)用的比重分別是多少?如果你編寫桌面應(yīng)用,你會(huì)選擇SWT還是Swing(或者其他GUI框架)?理由是什么?
  大部分回答為:“Java存在于服務(wù)器端的任何地方。”

  ● Swing太過(guò)于復(fù)雜,太不可預(yù)知,并且太難學(xué)習(xí)。SWT要稍微好一些,但通常來(lái)說(shuō),Java在用戶界面方面實(shí)在不受歡迎。
  ● 我認(rèn)為SWT的方法非常好,它出于速度和一致性考慮而鏈接到本地的類庫(kù),但是,我不喜歡API,它暴露了太多底層的東西。Swing有良好的API,但是它上面存在著太多的bug,較差的性能和糟糕的布局。
  ● 我非常喜歡SWT。它比Swing更加自然,而Swing被描述為粗略近似于自然。
  ● 我編寫Swing的應(yīng)用程序,并且使用Java Web Start進(jìn)行部署。我還不太相信SWT的價(jià)值,因?yàn)樗目缙脚_(tái)支持有限并且缺乏可靠的MVC設(shè)計(jì)。

  5.在開發(fā)Java程序時(shí),你首選的平臺(tái)、框架、IDE分別是什么?

  在這個(gè)問(wèn)題中,由于Windows和Linux這兩個(gè)占有統(tǒng)治地位的操作平臺(tái),使得Eclipse Framework和IDE普及程度很高,這一點(diǎn)表現(xiàn)得特別明顯。有網(wǎng)友認(rèn)為:
  ● 我選擇的操作系統(tǒng)是WinXP Pro。在安裝了Cygwin和幾個(gè)其它的設(shè)備后,系統(tǒng)能夠?qū)τ布峁┖芎玫闹С帧?
  ● 我喜歡J2SE 5。IDE方面,我喜歡JBuilder,IDEA是第二選擇。IDEA有更加靈巧的特性,但是我所需要的功能,老的JBuilder都有。
  ● 我過(guò)去使用emacs來(lái)進(jìn)行開發(fā),調(diào)試程序使用println。而現(xiàn)在,我使用NetBeans,并且非常驚訝,它居然能提供如此強(qiáng)大方便的幫助
  ● 在緊要關(guān)頭,我用vi進(jìn)行開發(fā)。

  6.在Java的整個(gè)發(fā)展過(guò)程中,你認(rèn)為JCP和開源社區(qū)誰(shuí)起到的推動(dòng)作用更大?

  開源派:
  ● 目前來(lái)說(shuō)是開源。JCP在積累實(shí)際經(jīng)驗(yàn)前總是相信標(biāo)準(zhǔn)。EJB,日志,持久性這些都是在JCP中讓人感到不滿意的地方。JCP正在放棄Java的基礎(chǔ)。一些困難的問(wèn)題正在很容易的被解決,但是相反,一些很簡(jiǎn)單的問(wèn)題卻變得日益復(fù)雜起來(lái)。
  ● 開源的實(shí)現(xiàn)正在引導(dǎo)著開發(fā)的過(guò)程,而JCP只是在定義標(biāo)準(zhǔn)。
  ● 如果是說(shuō)絕對(duì)意義上的改革,我只能說(shuō)是開源。開源的實(shí)現(xiàn)對(duì)于需要進(jìn)行修復(fù)的漏洞響應(yīng)很快。而JCP的進(jìn)步和工業(yè)前進(jìn)的步伐相比,顯然要慢很多。
  ● 很多創(chuàng)新都是通過(guò)JCP模型而來(lái)的。然而,在過(guò)去的20年里,我們看到開源模型正在日益增長(zhǎng)。
  ● 我已經(jīng)發(fā)現(xiàn)了開源的主動(dòng)性,尤其是Apache讓我感觸頗深——它是最具創(chuàng)新性和最有用處的。
  JCP派:
  ● JCP對(duì)于Java發(fā)展的貢獻(xiàn)是功不可沒(méi)的。它為整個(gè)Java生態(tài)系統(tǒng)提供了一個(gè)“物質(zhì)核心”。很多不符合JCP標(biāo)準(zhǔn)的開源項(xiàng)目展現(xiàn)了各種不同的想法——它們有的很糟,有的則很精彩。它們是提供改革動(dòng)力的引擎。

  7.你認(rèn)為Sun應(yīng)該將Java開放源碼嗎?

  肯定派:
  ● 應(yīng)該。而Sun不同意這樣做的唯一原因是它認(rèn)為Java是歸Sun所有的,并希望Java可以帶動(dòng)Sun的發(fā)展。
  ● 一方面,開源的思想是很具吸引力的,因?yàn)檫@會(huì)使得更多的bug在更短的時(shí)間內(nèi)被解決。另一方面,這也會(huì)為Java帶來(lái)一些分歧和互不兼容的虛擬機(jī)。
  ● 我們需要一個(gè)開源Java的主要原因是保證平臺(tái)的活力。如果Sun應(yīng)該做什么的話,顯然讓Java開源是這個(gè)計(jì)劃的保證。
  ● 我想Sun應(yīng)該!伴_源”Java并不需要Sun做任何工作。它主要需要其他人來(lái)做一些工作。擁有一個(gè)開源的Java是一個(gè)必然。我建議Sun能夠認(rèn)識(shí)到這個(gè)必然并抓住這個(gè)機(jī)會(huì)。
  否定派:
  ● 不。如果是開源的話,我們會(huì)看到各種樣式的Java。這最終會(huì)帶來(lái)問(wèn)題,就像我們現(xiàn)在面對(duì)各種應(yīng)用服務(wù)器所遇到的問(wèn)題一樣。
  ● 不。我不相信一群普通的人的想法可以替代那些關(guān)注基本思想的完整性的科學(xué)的觀點(diǎn)——這些通常是常人不需要關(guān)注的東西。
  中間派:
  ● 這個(gè)問(wèn)題無(wú)關(guān)緊要。Java已經(jīng)可以按照自己的方式來(lái)發(fā)展。

  8.如果你有權(quán)改變Java中的一樣?xùn)|西,你希望改變什么?

  ● 在底層,Java需要一個(gè)更加靈活的鍵入模型和一整套令編程更加容易的特點(diǎn)。我們不能將所有的事情都依賴類庫(kù)。
  ● Introspection,一個(gè)用來(lái)檢測(cè)JavaBean屬性的類——這個(gè)類太難用太笨拙了。
  ● 許可證。
  ● 為開發(fā)者提供內(nèi)存管理的工具。
  ● 增加對(duì)運(yùn)算符重載的支持。
  ● Jar版本是Java急需的東西。我已經(jīng)記不清多少次我的XML解釋器和日志庫(kù)發(fā)生沖突了。
  ● Class Object。10年來(lái)一直沒(méi)有變過(guò),應(yīng)該加入很多東西了。
  ● Java平臺(tái)現(xiàn)在變得太復(fù)雜了。我們相信Java社區(qū)需要在明確部門分類這方面做一些更好的工作,進(jìn)而使Java能夠繼續(xù)成長(zhǎng)、興盛和成功。
  ● Java絕對(duì)需要一個(gè)更為健壯的模型系統(tǒng),F(xiàn)在,我們擁有的全部就是.jar文件;結(jié)果是造成了.jar文件“地獄”。現(xiàn)在,描述一個(gè)互連的模塊系統(tǒng)太困難了。
  ● 一個(gè)對(duì)象在被加載以及Java運(yùn)行時(shí)類型之間的關(guān)系是我們?nèi)詫⒚鎸?duì)的錯(cuò)誤。你不能在編譯期決定你的程序是否是類型安全的。另外,如果你合理地做一些動(dòng)態(tài)的事情,你經(jīng)常不得不去為一個(gè)給定的類猜一個(gè)正確的類加載器。
  ● Java需要做的其它事情:運(yùn)算符重載,預(yù)編譯指令,把聲明和實(shí)現(xiàn)分離(頭文件和源代碼文件),唯一的、非原生的機(jī)器定義符(出于許可證的問(wèn)題)。
  ● Code-behind pages!!!ASP.NET和code-behind提供了巨大的復(fù)用性和靈活性。我希望看到JSP 3.0朝著這個(gè)方向努力。
  ● 我更喜歡利用Java對(duì)象訪問(wèn)操作系統(tǒng)而不是使用JNI。大部分的Win 32/Linux API可以被封裝道Java的類中。

  9.你認(rèn)為Java對(duì)整個(gè)軟件社群最大的一個(gè)貢獻(xiàn)是什么?

  ● 我們收到的最多的回復(fù)是平臺(tái)無(wú)關(guān)、Java平臺(tái)、Java語(yǔ)言本身和由此而創(chuàng)建的社區(qū)。
  ● 有兩件事:一個(gè)是它把帶有垃圾回收機(jī)制的語(yǔ)言推向了廣大使用者,另一件是圍繞著這種語(yǔ)言建立的智能IDE。
  ● Java的確帶來(lái)了很大的變化,包括它迫使Microsoft重新設(shè)計(jì)新的產(chǎn)品,例如對(duì)Visual Studio的改進(jìn)以及.NET。利用JavaScript實(shí)現(xiàn)的瀏覽器對(duì)Java來(lái)說(shuō)成了NetScape的替代品。服務(wù)器端的編程前進(jìn)了一大步,并可以實(shí)現(xiàn)上百萬(wàn)站點(diǎn)的互連。
  ● 有很多學(xué)生不用再學(xué)C++了。
  ● 標(biāo)準(zhǔn)API的制定使得可以有很多不同生產(chǎn)商的實(shí)現(xiàn)。這就提供了一個(gè)對(duì)于共同接口進(jìn)行最好實(shí)現(xiàn)的競(jìng)爭(zhēng),最后的結(jié)果是整個(gè)產(chǎn)業(yè)通過(guò)不斷的尋求更高質(zhì)量的解決方案變得很靈活。

  10.展望未來(lái),你認(rèn)為Java語(yǔ)言還將像過(guò)去10年那樣占據(jù)重要地位嗎?還是會(huì)被另一種更新、更強(qiáng)大的語(yǔ)言取代?

  肯定派:
  ● Java在工業(yè)進(jìn)化的過(guò)程中仍將會(huì)扮演極為重要的角色,因?yàn)槿藗儗?huì)把關(guān)注的焦點(diǎn)放在軟件的架構(gòu)上,例如SOA。
  ● 我們實(shí)際上可以編寫出更多的語(yǔ)言,它們之中有些可以和Java完全不同,但是,它們可以保持一致的應(yīng)用程序二進(jìn)制接口(ABI)。這就是為什么Java在很長(zhǎng)的一段時(shí)間內(nèi)仍然很重要的原因。
  ● Java仍是IT產(chǎn)業(yè)中強(qiáng)有力的語(yǔ)言,但是腳本語(yǔ)言在某些特定的領(lǐng)域里將會(huì)得到更廣泛的應(yīng)用。
  否定派:
  ● 不會(huì)的,語(yǔ)言在技術(shù)上的領(lǐng)先性都是暫時(shí)的,Java也一樣。因此,從某種意義上來(lái)說(shuō),關(guān)注Java的未來(lái)會(huì)更有趣。
  ● 當(dāng)桌面電腦和筆記本被掌上設(shè)備取代的時(shí)候,我們將會(huì)需要一種更簡(jiǎn)單、更強(qiáng)大的語(yǔ)言。
  ● C#對(duì)Java有潛在的威脅。它是更好的語(yǔ)言。
  ● Microsoft正在以令人難以置信的速度轉(zhuǎn)向.NET。它可以通過(guò)操作系統(tǒng)來(lái)?yè)碛锌蛻,在這一點(diǎn)上,它比Java更有優(yōu)勢(shì)。
  ● 在某些方面,Java虛擬機(jī)架構(gòu)的缺陷會(huì)變得非常嚴(yán)重。如果可以提供設(shè)計(jì)更加優(yōu)良的虛擬機(jī),那么它將極有可能替代Java平臺(tái)。