每年7月O'Reilly公司固定舉辦的開放源碼大會(Open Source Convention),至今已是第八年。今年的會場在美國奧瑞崗州波特蘭市,與會人數從過去的近千人爆增至1500人。討論的主題涵蓋了所有你能想到開放源碼內容,從耳熟能詳的Perl、Python、PHP與Ruby程式語言;Apache伺服器;MySQL、PostgreSQL資料庫系統,到開放媒體、開放源碼市場研究、商業策略等,主要的與會者,不是穿西裝打領帶的商人,而是穿T-Shirt、牛仔褲配涼鞋或運動鞋的駭客。開放源碼運動發起人Eric S. Raymond、Perl發明人Larry Wall、Pythond發明人Guido van Rossum,以及開放源碼社群裡各專案的開發者,都是這場大會的固定參加者。每年,他們在這裡報告手上專案的新進展,提出新的案子尋找參與的同好。在五天的時間裡,透過面對面的討論與接觸,為開放源碼社群帶出新的想法。
開放源碼未來發展
活動由O'Reilly總裁Tim O'Reilly的“O'Reilly Radar”演講正式揭開序幕。O'Reilly根據市場資料以及個人的觀察,提出他對開放源碼未來發展的想法以及資訊產業裡正在萌芽的新現象。
他從O'Reilly出版社的hacks書系出發,指出除了作業系統、程式語言、創新工具之外,網站的吸引力逐漸攀升,如Google、eBay、Amazon等。過去開放源碼將焦點定在個人電腦,以讓Linux與OpenOffice.org取代Windows與微軟Office為目標;但是如果將焦點放在網際網路上,我們會發現,這些成功的網站,都整合了大量的開放源碼工具(如Linux、Apache、MySQL),然後在其上建立私有軟體,並且把網站所得的資料鎖在最底層。因此,O'Reilly提出,對軟體產業而言,網際網路正在取代個人電腦,成為新的平台;以開放源碼為基礎建立起來的應用工具本身並非開放源碼;服務的成份會逐漸大過套裝軟體;不能只是提供軟體,還要蒐集資料;以及,使用者貢獻是佔領市場的關鍵因素。在這個情況下,透過網路的連結以及對資料的封鎖,自由/開放源碼軟體所欲追尋的自由,並無法完全受到保障。開放源碼需要有新的思維,才能繼續進展。O'Reilly並且認為,如果我們真的在意開放的話,應該要建立起讓使用者可以控制資料的明確標準;設計出使用者透過網路可以更容易參與、做出貢獻的架構。未來,我們要面對的問題在於,誰會控制資料?誰會控制主要的命名空間?以及,誰會整合出新的開放源碼結構?
社交軟體面臨挑戰
O'Reilly第二個提出的現象是社交軟體(Social Software)面臨的挑戰,從上班族風靡的friendster到駭客圈奔相走告的Orkut,社交軟體是人們試圖重新發明聯絡簿的新嘗試。他以同為Google所有的Orkut與Gmail為例,提出如果Gmail整合了某些社交軟體的特性,讓使用者可以自行建立起個人的溝通網絡,Google是不是就等於取得了我們有力的個人身份資料,而且這些資料都存在Google的中央伺服器上?因此,O'Reilly認為,個人聯絡簿與行事曆需要分散式處理,否則,社交軟體最終將讓我們的個人資料為少數中心人物所有。為了避免這種狀況發生,他建議,我們需要iSync的開放源碼實作,以及相互交換資料的開放標準。
學習經驗
最後,O'Reilly將軟體的界線跨越單一裝置,他特別舉出蘋果的iTunes與iPod,認為這是開放源碼值得學習的經驗,因為這兩者完整地將手持式裝置與伺服器接合在一起;軟體需要考量的對象已經不只是單一的電腦,還有手機、PDA等個人手持式裝置。他尤其提倡蘋果的Rendezvous專案,認為這是重要的技術,我們應該讓它普及到每個Linux發行版本與應用程式上。
這場演講只是開頭,在這之後是近200場不同主題的議程。
西班牙的猴子
七月最令開放源碼社群興奮的消息之一,莫過於Mono 1.0正式版釋出,為了推廣Mono的使用,核心開發成員之一的Miguel de Icaza也在OSCON專門介紹了Mono目前的狀況。
Mono(TM)是Miguel de Icaza於2001年發起的開放源碼計畫,其目的是在Unix系作業系統上實作出微軟.NET架構的開發平台,讓使用Unix的開發人員,也可以撰寫跨平台的.NET程式。此外,也引進了微軟的Common Language Infrastructure(CLI)與C#語言。2003年Novell收購了De Icaza所屬的Ximian後,就正式接手了Mono,成為這個計畫的主要贊助者。Novell投入了20名開發人力,來自開放源碼社群的開發者則有約300名。
De Icaza解釋了開始Mono的理由,是因為在開發Gnome的過程中,他們覺得,讓開發者可以不受語言限制地寫程式,是很重要的事。而微軟.NET使用的CLI正好滿足了這個需求,而且,微軟還為此製作了良好的文件與CLI規格。因此,他們決定讓Unix世界的使用者也可以享受到這樣的工具,由此開始了Mono計畫。說到取名Mono的原因,De Icaza再度解釋,因為Ximian的人都喜歡猴子,而猴子的西班牙語是Mono。
在技術上,為了讓.NET成為標準,微軟已經將C#與CLI的規格書提交至ECMA,而Mono也就是根據提交至ECMA的1.1版.NET架構來做的。
已釋出的Mono 1.0適用於Linux、Windows與Mac OS X,下載網站上除了提供各元件的源碼之外,也提供了為RedHat Fedora Linux、SuSE Linux與Mac OS X預先編譯好的安裝套件。共包含下列元件:
- ●根據ECMA標準的跨平台CLI runtime engine
- ●跨平台的IKVM Java runtime engine
- ●C#編譯器
- ●開發工具鏈
- ●符合.NET 1.1的類別程式庫(亦適用於.NET 1.0)
- ●Gtk# 1.0版的圖形使用介面的程式設計套件
- ●Mono延伸程式庫
- ●協力團體提供的程式庫
- ●CLI使用的GNU Classpath
- ●Visual Basic runtime
CLI的優點在於,除了C#外,開發人員可以使用其他的程式語言來寫程式,只要這個語言支援CLI。雖然Mono 1.0將重點放在C#編譯器,但是De Icaza指出,有其他協力團體在開發將其他語言編成CLR的編譯器,如Fortran、C/C++等。而ASP.NET與VB.NET的程式,也都已經可以在Mono上執行。Gtk#則讓Windows與Unix的開發人員,都可以用Mono開發GUI程式。De Icaza並且建議,Gnome程式的開發者,現在可以跳船到Mono了。為了可以相容原本用Windows.Forms撰寫的程式,Mono也有實作微軟System.Windows.Forms API,不過還沒有非常完整。在時程上,Mono團隊雖然計畫實作.NET中所有重要的API,但是截至目前為止,只有少部份轉換完成,他們預計在Mono 2.0時將這些API補完。
為了證實Mono的可用性,De Icaza也介紹了幾個已經轉移到Mono的案例。比如Novell內部就以Mono做為其檔案系統iFolder 3.0,以及桌面搜尋工具Beagle/Dashboard的開發平台。社群專案裡,Gnome用的音樂播放程式Muine、傳真軟體GFax,也都是Mono的愛用者。
需要在Linux上開發.NET程式嗎?試試Mono吧。
機器間的邂逅
參加OSCON,會讓人有個幻覺,以為全世界蘋果電腦的佔有率不是3%而是50%,因為至少一半的與會者都使用蘋果電腦,會場提供的電腦也一概都是蘋果電腦。在這麼多麥金塔OS X使用者的場合下,Rendezvous分享資料、共同筆記的優點展露無遺。iTunes使用者可以瀏覽其他人的iTunes音樂列表,甚至直接串流聆聽。內建Rendezvous功能的編輯器SubEthaEdit可以瀏覽同個子網域中其他同個編輯器的使用者,並且與他們共同編輯同一份檔案。
Rendezvous是根據IETF通過的ZeroConf標準發展出來的通訊協定,它使用IP協定,讓同一個子網域內的電腦與硬體裝置可以自動找到彼此,不需要設定IP也不用設定DNS。這是蘋果發展的眾多開放源碼專案之一,目的是讓使用者可以方便地在網路上找到需要的服務或裝置,比如:印表機。為了達到這個目的,Rendezvous包括了三個面向的技術:不用DHCP伺服器而能自行配發IP、不需要DNS伺服器即能轉換IP位址與名稱的Multicast DNS,以及不需目錄服務(directory service)就能找到服務的DNS service discovery功能。
透過這些技術,同個網域內的裝置就可以直接看到彼此的存在,知道對方提供哪些服務,並且可以透過介面去存取該服務;簡單、方便,而且不需要手動設定。蘋果希望硬體業者可以在他們的驅動程式裡加上Rendezvous技術,也希望更多人可以應用這個技術開發網路服務。目前Rendezvous已經可以安裝在Winodws、Linux、Solaris跟FreeBSD平台上,蘋果也提供了包括C、C#、Java等語言在內的範例程式碼。
這麼多人開啟Rendezvous傳輸資料,對網路流量會不會造成影響?答案當然是會。2003年時的OSCON會場,就曾多次因為太多人使用Rendezvous的關係而癱瘓,導致大會人員必須到各講廳呼籲蘋果電腦使用者關閉Rendezvous。今年大會主辦人員學乖了,網路穩定了不少,不至於全面癱瘓,但是在長時間使用Redezvous功能時,仍然會有小中斷的情況發生。
獎落誰家
OSI創始人Eric Raymond在去年的OSCON上,宣佈開辦Open Source Award(開放源碼獎),第一屆頒獎典禮也在此頒出。
第一屆金牌獎得主是Perl發明人Larry Wall,但是他得獎的原因並不是因為發明了Perl,而是因為他在1984年寫了patch這支程式。patch讓開放源碼社群的開發人員,可以方便地送出某個程式的修正檔,大大提昇了人們參與開發的意願,也加速了程式改進的速度。如今我們習慣說:「送patch」,也是因為這支程式而形成的風氣。特殊貢獻獎(銀牌獎)得主的Mitchell Baker,她並不是程式設計師,而是知名瀏覽器Mozilla計畫的負責人,除了一手組織起Mozilla計畫外,Baker更撰寫了Mozilla Public License。雖然不是hack code,但是Mozilla計畫沒有她,也難以如此成功。除了金牌跟特殊貢獻獎是一年一度之外,銅牌獎則是每季選出三名,但是今年第三季的得獎者尚未選出。
開放源碼獎是CNET與OSI共同想出,由OSI主辦的獎項,目的在於獎勵並且鼓勵對開放源碼軟體有傑出貢獻的個人。Eric Raymond表示,他希望這個獎可以長久持續下去,成為科學界的諾貝爾獎與科幻小說的雨果獎。
派的功能
OSCON的活動,在一場精彩的砸派典禮中達到高潮。一年前,Perl 6架構設計者Dan Sugalski與Python作者Guido van Rossum打賭,賭Python在Perl 6引擎Parrot上的執行速度會高於在Python的速度,贏的人可以在輸家臉上砸派。比賽結果揭曉,Dan Sugalski輸了,雖然Python在Parrot上的速度的確較快,但是卻無法正確執行。就在OSCON最後一天的閉幕演講前,Guido van Rossum將一整個盤子的派結結實實蓋到Sugalski臉上,引起全場大叫。已經進行超過兩年的Perl 6計畫,至今為止仍是只聞樓梯響,不見人下來。當詢問Perl 6前專案管理員Nathan Torkington關於Perl 6的現況時,他答道:「Perl 6現在很好,我們的編譯器已經可以用了,Perl社群非常健康。Perl 5已經非常成熟,我想,我們需要再多幾年發展Perl 6,讓更多人加入,創造出更多新的東西。」
為開放源碼社群創造更多的回饋
想像與一千多名駭客共處五天,每天的行程不是在講廳裡聽某種新技術或新概念,就是跟其他有志之士一起窩在會場的某個角落共同討論或撰寫新程式;傍晚議程結束後,到飯店附近覓食,晚上泡在酒吧裡繼續未完的hack或倒頭大睡為隔天儲備精神。OSCON就是這樣的場合,你可以在這裡遇到在郵遞論壇或irc上合作已久的開發者,也可以認識新朋友,更重要的是,在這裡學到的知識與技術,都可以實際應用,為開放源碼社群創造更多的回饋。
|
|
以圖解方式,針對iSync所提供之功能進行資料同步處理。相關介紹請見「iSync操作方式」一文。 |
|
在付費軟體與開放源碼的兩大擁護陣營之間,存在著根深蒂固的成見。尤其是反微軟陣營(anti-Microsoft
camp)。當你衡量上述爭議究竟熟是熟非的時候,我建議不妨保持平心而論。你可在「不選擇開放源碼軟體的理由 」一文中得到進一步的介紹。 |
|
作者發現越早發放的放新的版本,就越快有好的反應和測試,而且不斷有人加入新的功能,每一個參與的人都為了個人的需要而努力,這種集合式的工程,就像一個市集。
在「關於“市集模式”的開放源碼軟件開發」一文為你做了相關的評析。 |
|
|
|