明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Java10大熱點問題調(diào)查揭曉

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

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

  ● 我在Java一出現(xiàn)的時候就開始使用它進行編程。我為它的‘一次編寫,到處運行’的理念以及Applet感到激動。
  ● 我在Java出1.0版本之前就開始學習它,因為我期望它能作為微軟產(chǎn)品(我對VB和Visual C++太失望了)和Pascal的替代品。
  ● 我曾經(jīng)把Java手冊作為休假時的閱讀材料,結(jié)果被它所吸引,轉(zhuǎn)而使用Java而放棄C++,并且永不回頭。
  ● 我所在的大學一直都在教C++課程,但我卻用了很多時間自學Java,因為想用它找一份更好的工作。

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

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

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

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

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

  ● Swing太過于復雜,太不可預知,并且太難學習。SWT要稍微好一些,但通常來說,Java在用戶界面方面實在不受歡迎。
  ● 我認為SWT的方法非常好,它出于速度和一致性考慮而鏈接到本地的類庫,但是,我不喜歡API,它暴露了太多底層的東西。Swing有良好的API,但是它上面存在著太多的bug,較差的性能和糟糕的布局。
  ● 我非常喜歡SWT。它比Swing更加自然,而Swing被描述為粗略近似于自然。
  ● 我編寫Swing的應用程序,并且使用Java Web Start進行部署。我還不太相信SWT的價值,因為它的跨平臺支持有限并且缺乏可靠的MVC設計。

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

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

  6.在Java的整個發(fā)展過程中,你認為JCP和開源社區(qū)誰起到的推動作用更大?

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

  7.你認為Sun應該將Java開放源碼嗎?

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

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

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

  9.你認為Java對整個軟件社群最大的一個貢獻是什么?

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

  10.展望未來,你認為Java語言還將像過去10年那樣占據(jù)重要地位嗎?還是會被另一種更新、更強大的語言取代?

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