突破困境的開放式源碼開發(fā)平臺
● Eclipse和NetBeans是兩個相似而又相互競爭的開放源碼項目。
● 許多公司正在成功地用Eclipse平臺提供嵌入式開發(fā)工具。
● CPL(通用公共許可證)使開放源碼的需求與實現(xiàn)專有部件的需求保持平衡。
● 如果IDE不是你要為工具增加的核心優(yōu)勢,則要考慮對Eclipse平臺進行評估。-----------------------------------------------------
最近幾年來,開放式源碼軟件 開發(fā)過程展現(xiàn)出一些令人印象深刻的成功(見附文《開放源碼的定義》)。根據(jù)2003年12月出版的《Netcraft 萬維網(wǎng)服務(wù)器調(diào)查報告》(news.netcraft.com)說,用戶都使用Apache HTTP服務(wù)器項目—Apache軟件基金會(www.apache.org )的一個開放式源碼項目作為服務(wù)器來運行因特網(wǎng)上67%以上的網(wǎng)站。GNU/Linux操作系統(tǒng)(www.linux.org)是另一個得到廣泛使用和支持的開放式源碼軟件項目。Eclipse平臺是正在獲得支持的嵌入式開發(fā)工具的一個開放式源碼軟件項目。
Eclipse這個開放式源碼軟件開發(fā)項目,其側(cè)重點是建立一個平臺,用以主控并開發(fā)緊密集成的軟件開發(fā)工具。IBM公司在2001年11月捐出4千萬美元發(fā)起了Eclipse開放源碼項目,用它來更高效地建立一個支持最佳工具插件的平臺。IBM繼續(xù)是該項目的主要內(nèi)容提供者,并領(lǐng)導(dǎo)該項目機構(gòu)。該項目目前正在變成一個用獨立的管理機構(gòu)取代IBM公司領(lǐng)導(dǎo)職責(zé)的獨立的實體。這一轉(zhuǎn)變更凸顯出該項目的重點是創(chuàng)建一個全行業(yè)的工具集成平臺。作為這種轉(zhuǎn)變的一個部分,該項目的名稱也可能會更改。
Eclipse項目和SUN公司推動的NetBeans項目都是相類似的開放式源碼項目,兩者均作為Java開發(fā)環(huán)境而相互競爭。Sun公司最近正式拒絕加入即將成立的獨立實體的董事會,聲稱Eclipse項目和NetBeans項目缺乏共同基礎(chǔ),不能公平分享相互間的開發(fā)成果。Eclipse和NetBeans都是基于Java的平臺框架和與語言無關(guān)的IDE(集成開發(fā)環(huán)境)。因為都是基于Java的,所以它們可以在多種硬件和操作系統(tǒng)上運行,其中包括Windows、Linux、Solaris和Mac OSX。兩種IDE均可免費下載,都需要一個JDK(java開發(fā)工具包)1.3版以上的兼容虛擬機,都可立即支持Java開發(fā)。另外的語言或開發(fā)工具支持,如對C/C++開發(fā)的支持,則需要下載另外的插件或模塊。
Eclipse和NetBeans都允許創(chuàng)建自己的各種工具,這些工具可與IDE集成在一起,并使之?dāng)U展,以便支持任何軟件開發(fā)功能。工具擴展在NetBeans項目和Eclipse項目中分別稱模塊(module)和插件(plug-in)。兩種平臺的插件/模塊接口有所不同,所以插件和模塊互不兼容,兩個平臺不能進行共享。兩個項目各自使用的跨目標(biāo)圖形工具包是相互間大不相同的另一個根源(附文《本源與模仿》)
NetBeans使用的Swing/AWT(抽象窗口工具包)圖形工具有一種“一次編寫,隨處運行”的能力。Eclipse項目使用的JFace/SWT(標(biāo)準(zhǔn)界面工具包)具有更好的本機性能以及更好的外觀與感覺,而目標(biāo)可移植性有所下降。另一個重要區(qū)別是:Swing使用Java垃圾收集器,而SWT依靠程序來釋放操作系統(tǒng)資源。這種區(qū)別使SWT會顯露操作系統(tǒng)功能并避免時序問題(從某個對象成為垃圾到系統(tǒng)完成資源釋放之間),特別是在不同的JVM(Java虛擬機)版本之間。
嵌入式開發(fā)
Eclipse和NetBeans都非常偏向于企業(yè)軟件開發(fā),但使用Eclipse框架進行嵌入式開發(fā)的集成工具正在出現(xiàn)。Eclipse組織中的成員公司代表了包括企業(yè)的、Linux的以及嵌入式開發(fā)的工具開發(fā)部分。這些部門各有不同需求的不同受眾,而平臺工作臺則具有運用于每個開發(fā)部門的商品化功能。Tensilica公司和WindRiver公司是嵌入系統(tǒng)行業(yè)中最近采用Eclipse平臺的兩家公司。
Tensilica公司的Xtensa Xplorer IDE將Eclipse平臺用作處理器配置和軟件開發(fā)工具。雖然Wind River有Tornado IDE,但該公司官員感到,使用Eclipse框架可以把它的開發(fā)資源更多地用于工具功能,而較少地用于商品化架構(gòu)功能。在公司采用Eclipse的決策中,要考慮的因素是Eclipse與本機平臺的更緊密的集成(從而接近本機性能)以及更能體現(xiàn)本機的外觀與感覺。
Eclipse框架是按CPL(通過公共許可證)進行分發(fā)的,CPL鼓勵對代碼庫的協(xié)同式開放源碼開發(fā),但也具備足夠的靈活性,可以將代碼與其它許可證下的軟件進行集成,包括商用許可證。OSI(開放源碼計劃)批準(zhǔn)CPL,并可在www.opensource.org網(wǎng)站得到。如果你修改某個有CPL許可證的程序,如Eclipse代碼庫,并且分發(fā)目標(biāo)代碼,則你有義務(wù)向他人提供修改后的源碼。如果你只是自己內(nèi)部使用修改過的程序,沒有公開發(fā)布這些更改內(nèi)容,那你就不必向別人提供修改內(nèi)容。如果你編寫與分發(fā)的插件模塊只是與原CPL代碼實現(xiàn)接口操作,但沒有對CPL代碼本身作修改,則你也不必讓源碼供公眾使用。
如果你打算在一個商用許可證下分發(fā)增值功能,則下列條款就是很重要的:如果插件模塊只與代碼庫接口而不改變代碼庫,則插件模塊就不必是開放源碼。這種許可模式可以讓你自由使用Eclipse框架,并以插件形式開發(fā)增值功能,而不是使用自己的工具開發(fā)資源,在不放棄專有的IP(知識產(chǎn)權(quán))權(quán)利的情況下,去建立一個以功能為中心的開發(fā)環(huán)境。
從零開始開發(fā)并維護軟件工具可能要付出高昂的代價。像Eclipse這樣的開放源碼項目可以幫助你減少你的工具商品部分的制造與維護費用。你可以把Eclipse平臺的插件架構(gòu)與CPL條款結(jié)合起來,為的是在你代碼的商品部分和專有部分的使用與分發(fā)之間進行平衡,從軟件的商品部分獲益,并且為軟件的商品部分作出貢獻,而所花費用則比不使用平臺要低。(見附文《拓展Eclipse》)。然而,并不是所有軟件都是為商品分銷而編寫的,內(nèi)部工具和嵌入式軟件就是兩個實例 。隨著開放源碼軟件的逐漸成熟,以下做法是很有意義的:定期對Eclipse這樣的平臺進行評估,看它是否能夠或者如何協(xié)助你以較低的成本開發(fā)并維護內(nèi)部的軟件工具.
評論