原文作者: Alexe 大部分文字整理自perlchina 2005-03-05北京聚會,唐宗漢的口述,其他部分文字整理翻譯自perl的相關站點。 寫作目的:講述一個奇異華人在世界開放源代碼界的努力,敘述開放源代碼作者們的宏偉藍圖。 唐個人簡歷: 唐宗漢男 1981年生人 籍貫台灣。 唐的外表:長發,面白,十指修長。 唐的行為:說話有力,吐字清晰,語速很快(說明思維敏捷),隨時攜帶自己的筆記本電腦,包括上廁所,目的是紀錄下自己的隨時會有的想法。 唐的稱號:據稱台灣十大電腦高手。 唐個人網址:http://www.autrijus.org/ 唐的工作態度:每天一直努力干活直到累倒為止(累倒,是說感覺到十分的疲勞,沾床就睡的感覺)。 唐的教育經歷: 14歲辍學,一直憑興趣自學計算機知識(自稱擁有自8086以來每個類型的計算機,現在在用一台華碩訊馳1。8G,計劃很快去買台Mini-mac),是個絕對自學成材的自由軟件者。曾去大學蹭課聽,主聽中文系與哲學系的課程。自我感受聽中文系的老教授所講的知識很有受益。 英語的學習:曾一段時間迷戀萬智牌,為了打好牌而常上irc與老外交流,切磋牌技,經過一段時間,在irc裡熟練了英語。而且還曾打到台灣萬智牌的積分排名第一。 唐現在的生活: 喜歡旅游,過去去過世界各地的很多地方(基本都是自費)。 到處推廣perl,參加開放源代碼會議。剛在大陸給perlchina成員上課,推廣perl。 開辦一家小計算機公司2-3年,沒有什麼正式的員工,大家都是網上認識的朋友。接到工作後,按照過去對大家能力的評價分配給大家干,然後大家分錢。自己干活的話是按照小時收費。每寫一小時的軟件收費100美金或歐元。寫完的產品給客戶說明需要開源,開源可以讓客戶免費享受很多的開源社區升級更新所帶來的好處。當然如果客戶不同意,他就說明要收兩倍的價錢,如果客戶要求軟件的版權完全歸自己所有,他會要求收6倍的價錢(竟然還是有一個客戶願意收6 倍的價錢)。 從2005-02-01開始領導一個開發團隊夜以繼日的編寫Pugs。這個團隊大約有十五六人,其中有三分之一來自於台北perl推廣組。 平時當遇到某些困難問題的時候就需要大量的咖啡因(咖啡,後來換成可樂,可樂其實比較傷胃,所以注意不能多喝,好像現在想要換成茶?)。 唐對於perl的經歷: 學習perl只是由於正值互聯網的興起,有公司要他過去開發cgi,這才開始了perl的生涯。後來編寫了大量的perl模塊,有100多個,可以在cpan(請看附錄)上找到。 網址:http://search.cpan.org/~autrijus/ 原來最初覺得寫perl很孤獨,但是經過長時間的與各種朋友的交流才發現,原來很多的軟件都是用perl寫,原來有很多的大公司都在使用 perl,例如:微軟的員工在用perl,微軟贊助了windows下面的perl版本activeperl的開發;摩根士坦利整個公司都在使用 perl,他們在2003年贊助了perl基金會大約一半的費用;眾多華爾街的金融機構都在使用perl 來做金融數據的處理;物工程科學也都在很大程度上使用perl,據稱現在的基因工程還十分得益於perl的快速開發。 由於在cpan上的貢獻,曾在2003年2次獲得perl基金會的獎勵,每次2000美金。 網址:http://www.perlfoundation.org/gc/grants/2003.html 與台北的perl愛好者成立了台北perl推廣組,每個月組織一次聚會,大約有30多人,大家見見面,並找個新的perl課題讓某個人上台給大家講演一下。最近半年這個活動已經成為了例行活動。(在台灣寫perl的人大家互相都很熟悉,從唐口中了解到了董仲恺,openwebmail的開發者,一個上了8年的博士生,將自己的精力都放在了openwebmail的開發上,一個perl寫的web mail,很不錯)。 網址:http://taipei.pm.org/ 在2001年唐第2次參加開放源代碼大會的時候,需要在會上做一個5分鐘的演講,那時唐剛接管cpan的相關管理工作,所以他把自己在cpan上最喜歡用的模塊拿出來用中文創作了一段數來寶(cpan數來寶,有點中文rap的味道),最後還有一段一用英文唱的總結歌曲,這引起了與會者的滿堂喝彩。所以以後唐到西雅圖,德國,英國,都會應要求表演一段。 文字網址:http://wagner.elixus.org/~autrijus/favcpan/start.html 錄像網址:http://www.perl.org/tpc/2003/movies/perl-lt/ Perl6的開發: 最初開發perl6的原因與歷史: 在5年以前的2000年,由larry wall 在每年一次的開放源代碼大會(oscon2000)上提出了perl6的開發計劃。 那時perl5.6剛發布,但是當時的perl開發社群卻感覺卡住了,很難再往前了。Perl這門語言已經有13年的歷史,由於一直保持向後兼容,而且perl5的代核心碼已經很成熟,可以說是渾然一體,所以很大程度的阻礙了我們添加新的功能,因為每次添加新的功能都有可能打破舊的代碼的運行。 Perl5是用c寫的核心,它跑得很快,功能也很強,但是它的核心代碼是那麼的龐大,充滿了各種很難以理解的宏調用。修改核心來添加新功能對任何一個人來說都是一件極為復雜和困難的工作。特別是在開發perl5.6的時候,添加了unicode與多線程的支持,但是在添加的過程中,開發者發現這種添加是件很痛苦的事情,因為每次添加新的功能都要抽取舊的功能來補。perl5的開發者就把這種現象比作一種積木游戲:疊疊樂(一堆小木頭疊成一座高塔,每層有三塊,每個游戲者輪流把底下的一塊抽出來放到上面去,這樣這個塔的底部就越來越脆弱,而這個塔就越來越高,誰抽出最後一塊讓塔倒下的人就是輸家),大家認為 perl5的核心越來越像疊疊樂,已經越來越脆弱,無法再進一步的改進,perl5已經到了其生命的極限。 所以larry wall就提出了開發perl6的計劃。 網址:http://www.perl.com/pub/a/2000/07/perl6.html 當時的目的就是要從新設計一個perl,線程、unicode、可靠信號控制在一開始設計的時候就要被加進去,新的內核要更小,速度更快,外部擴展api要更加清晰,在過去的二進制兼容問題也要被徹底解決掉。 然而,在larry計劃新的perl6開發的同時,像python等其他語言也遇到了同樣的問題:它們最初設計的時候想要解決的問題現在都已經基本解決了,可當現在要添加新功能上去的時候會發現,由於最初的設計並沒有想象到現在的這種需求,所以再添加新功能也是件很困難的事情。 既然大家都遇到相同的問題,所以這時兩個開放源代碼社區就提議合作共同設計一個新的底層平台,使用這個底層從根本上來解決這些大家都遇到的問題,這個底層平台就是perl6的parrot。 在2001-04-01 larry wall(perl的設計者)與Guido van Rossum(python的設計者)一起宣布了parrot的開發計劃。 網址:http://www.perl.com/pub/a/2001/04/01/parrot.htm 這個消息令整個的開放源代碼社區都十分的興奮,大家十分期待著新項目的成功。 這樣perl6項目的整個計劃就從原來的獨立的perl6設計,變成了一個多層次的設計項目。 Perl6整個項目的設想: Perl6的整個項目是建立在底層parrot之上的。 過去用perl5寫的程序或模塊與其他語言例如python、ruby都不能共容,如果想要共容的話必須用一些很糟糕的方法,所以他們就先設計了一個底層平台叫做parrot(鹦鹉,就像.net的運行期或java的虛擬機)。 我們寫perl6的代碼,然後我們通過一個編譯器將perl6的代碼編譯成字節碼(byte code),這個字節碼才可以直接在parrot上面運行,而parrot再負責把這些字節碼具體的翻譯成intel或sparc等平台上的機器碼來執行。 也就是說你可以用任意的語言來編寫程序,然後通過一個編譯器來翻譯成統一規則的字節碼,在統一的一個虛擬cpu平台parrot上運行。 這樣你就可以使用任意的語言來編寫程序,最後大家都編譯成統一規則的字節碼,由於大家的字節碼都遵循相同的規則,所以在字節碼之間的相互調用就可以十分平滑的實現,這樣不論你用何種語言編寫的程序,就可以很容易的互相使用(這種技術就是JIT技術,Just In Time)。 這樣你用perl寫的模塊,就可以用python來調用,各種語言實現了共通。而且計劃perl5寫的程序也可以移植到parrot上面使用,這就意味著在cpan上的幾千個perl模塊就依然可以使用,而且其他語言也可以調用這些perl模塊。 而其他過去遇到的問題,如很難擴展,沒有線程支持等,在parrot上面就解決掉了。 在perl6架構下的整個程序的執行過程,如下圖(執行自上而下): Source Code +------------+ | The Parser | +------------+ Syntax Tree +--------------+ | The Compiler | +--------------+ Byte Code +--------------------+ | Bytecode Optimizer | +--------------------+ Better Byte Code +---------+ | Runtime | +---------+ Source Code源代碼,可以是各種語言的源代碼。 The Parser是各種語言的解析器(例如python就有python的解析器,c就有c的解析器),負責將源代碼轉換成語法樹。 Syntax Tree語法樹。 The Compiler編譯器,按照calling conviention規則,將各種語法樹編譯成字節碼。 Byte Code字節碼,就像虛擬cpu上面的匯編語言,而這個虛擬cpu就是parrot。 Bytecode Optimizer字節碼優化器。 Better Byte Code優化後的字節碼。 Runtime在這裡就是parrot。 因此最終成型的整個perl6項目實際上就是由兩個部分組成:一個是底層的parrot,一個是上層的perl6語言。而Perl6的語言又可以分為:語言的設計(perl6的語法,規則,也就是Source Code),語言的實現(通過一個解析器與編譯器將perl6的語言轉換成字節碼)。 Perl6整個項目的想法與.net基本是同時想到的,整個概念其實與java和.net十分相似。 Parrot的特點: Paroot的設計就像一個軟件cpu,並且它的設計與硬件cpu的設計很相近,例如:它也有一個寄存器結構,它也支持底層的操作。它的設計還參考了硬件cpu的設計。 Parrot在設計上要滿足各種動態語言的需求,而且特別注意可擴充性,像unicode,多線程等都是直接內建支持。 Parrot的抽象層比.net與java更高,你可以寫更少的代碼來運行更復雜的運算。象各種面向對象相關的調用都在parrot內部有相應的機械碼。 Parrot的現在大小在250K至700K之間,它會有足夠快的速度,並有足夠的靈活性。 Parrot支持多種平台,包括手持設備,如palm。 網址:http://www.parrotcode.org Perl6語言設計的特點: Perl6語言的設計思想:easy things should stay easy, hard things should get easier, and impossible things should get hard。 例如:在perl6的語言設計上larry采用了霍夫曼編碼的思想:常用的功能使用較短的單詞來表示,不常用的功能用較長的單詞來表示,這樣就可以顯著的提高你的輸入程序的速度。比如說:過去perl5中的print”… ”,現在在perl6中就可以用say”…”來直接代替,因為打印是程序中最常用的功能,所以就用較少的代碼來表示,這樣可以顯著的幫助你減少代碼的輸入。 Perl語言還有一個特性就是把當時最流行大家最推崇的其他語言好的功能集合起來,統一融合到自己的語言中來。在perl中這叫做多重典范。 larry wall喜歡把這種情況比作英文,英文就是吸收了很多其他語言而組合而成的語言。Larry 的想法就是perl最好象英文那樣:每個當地人在學習英文的時候都會帶一些當地的方言,帶一些當地的講話習慣,但是大家也都能聽懂,兼收並蓄其他語言的長處,來形成自己的特點。 總之,把所有各種最流行的元素都集合起來,就組成了perl6語言。 Perl6還有很強的靈活性(perl的一句格言就是:條條大路通羅馬): 如果你特別喜歡oo,那麼perl6感覺上就像java一樣,就可以特別oo。 如果你不喜歡強制類型聲明,那perl6就可以不用聲明。 如果你特別喜歡邏輯語言例如:make,那麼perl6就可以讓你按照邏輯語言的方式來編寫程序。 Perl6吸收了很多其他語言的特點,因此你可以用自己喜歡的編程方式在perl6中編程,但是通過perl6中的語境相關的能力,不同的編程方式寫出的perl6程序仍然可以很好的搭配在一起。 這樣設計的意圖就是讓程序員針對不同的問題,用不同的解決方式,從而對所有遇到的各種問題達到最優的解決方法。 Perl6語言的兩個特點就是:語境相關(context)與多重典范。 Perl6與perl5的比較:語言本身的感覺其實還是跟perl5語言是一樣的,只是在運行時的過程與perl5截然不同。對於過去perl5語言的很多語法perl6也繼續使用,對於perl5語法的不合理部分perl6做了改進。 網址:http://dev.perl.org/perl6 正在開發的Perl6及其相關軟件: Parrot,perl6的執行引擎。已經開發到了0.1.2版,現在實際可以運行python、basic。 網址:http://www.parrotcode.org 在Parrot方面現在已經有了很多的半成品: 比如ponie是一個能將perl5編譯到parrot上面來的軟件。 網址:http://www.poniecode.org/ 有人正在將Php、Ruby移植到parrot上面來。 有人聲稱要將gcc(gnu的開源c/c++編譯器)移植到parrot上面,這樣以後所有的可以用gcc編譯的程序可以直接編譯到parrot上面的字節碼來運行。 甚至還有人決定要移植.net到parrot上來。 這當然是一個瘋狂的決定,然而成事是都要靠瘋子,瘋子與天才是靠最後的成敗來決定的,他未必會成功,但是如果成功是很了不起的(唐的原話)。 Pugs,不管其他perl6的開發,只是先對perl6做一個真實的實現,以此檢驗perl6語言的特性,幫助perl6語言的進一步設計,最後計劃轉變為perl6的編譯器到parrot。 網址:httP://www.pugscode.org Perl6整個項目過去4年的開發過程: Perl6語言的設計: 在perl6語言的初始設計的時候,首先成立了一個rfc(Request For Comments)項目,就是向所有關心perl6語言的人邀稿,大家將自己想在perl6語言中想實現的功能寫成rfc,然後發給larry wall,larry wall就會想辦法在perl6中幫你實現。最後larry花了一整年的時間把各種rfc中描述的特性整合到新的perl6語言中(在開發perl5的時候,他們也是用了快一整年的時間將很多其他語言的優點都整合到perl5中來,Perl過去的版本也都是這樣,到處偷學,采納各種語言好的想法)。 Larry wall收集整理完成rfc後,從2001年起就不斷的開始寫啟示錄(Apocalypses,希臘文),描述perl6的新功能。啟示錄的格式與 larry wall過去寫的Programming Perl(相當於perl5的聖經)這本書的格式是一樣的,例如:在Programming Perl中的第6章描述的是子程序那麼在啟世錄的第六章也是寫的子程序。 由於啟示錄對於perl6的描述並不是十分詳細,而且寫作的時間已經過去了3年,所以在2004年起larry開始根據自己的啟示錄編寫綱要(Synopsis),來對相應的啟示錄章節做總結,並且更加專業的。到了2004年12月,perl6語言的大部分設計就都已經寫在一系列的綱要中,而且已經穩定到了可以實際運用的程度。 Perl6的編譯器的開發: 在2000年的10月perl基金會在兩個星期中籌集了75000美金來雇用Damian Conway(perl核心開發人員)2001年一年的時間,可以讓他專門去開發perl6。其中的2萬美金讓Damian去各地做演講,來宣傳 perl6。Damian於是在美國各地給Linux和自由軟件愛好者做了上百次的演講,讓大家對perl6充滿了期待。 在2002年Damian仍然繼續專門負責開發perl6。 在2003年Damian完成了Perl6::Rules模塊,這是一個在perl5上做perl6 rules的一個雛形,是整個perl6編譯器的關鍵部分。但是開發出的產品很不成熟,無法穩定運行。 所以3年過去了,沒有成熟的perl6到parrot的編譯器出現。過去開發perl6編譯器的路線是錯誤的。 2005年2月,唐開始了pugs,另一個perl6編譯器的開發。 Parrot的開發: 在2001起由Dan Sugalski負責開始開發parrot。 從2001年8月開始放出代碼,第一個版本是0.0.2版,到2005年1月已經放出過14個版本,最新的版本是0.1.2版。 現在已經有些語言可以編譯成parrot的字節碼。你現在也可以用parrot的匯編語言寫一些簡單的程序在測試解析器上運行,parrot已經支持絕大多數的數學運算,一些基本的字符操作和一些條件運算。 整個parrot開發還在快速進行當中。 Perl6編譯器開發過程中出現的問題: 當最初宣布這個perl6的開發計劃時,整個perl6的社區非常的高興,大家都在等待perl6的成功運行。但是2002-2004三年的時間過去了,沒有一支perl6的程序跑得起來。現在parrot的程序其實已經很穩定了,但是perl6語言到parrot的編譯器一直沒有實現(Parrot現在都可以跑python了)。所以到了2004年的年底大家已經絕望了,感覺perl6的實際運行遙遙無期。在這3年期間larry仍然一篇一篇的寫啟示錄,damian一篇篇的給啟示錄寫注疏(對於啟示錄中的內容實際在日常使用時的語法),可是卻完全沒有一個真正的perl6語言實現。 就有一個小笑話:有人問寫的perl6的程序從哪裡跑?damian會說:“在我腦子裡跑”。可是把他從澳洲請過來專門跑perl6程序也太貴了,而且他也不可能夜以繼日的專門跑perl6程序。:)Parrot本來設計起來是要跑perl6的,但是現在似乎parrot什麼都可以跑就是沒法跑 perl6。 關鍵是問題到底出在什麼地方呢? 問題就是當初perl6的設計是要實現自足執行(self-hosting)。對於所謂的自足執行舉例來說明:c的編譯器是由c寫的, c++的編譯器是由c++寫的,java的編譯器有一些是由java寫的,c#的編譯器是由c#寫的。以此類推,非常多的編譯程序都是用自己來寫自己的編譯器,用自己來寫自己的執行環境,這就是所謂的自足執行。可是我們現在所熟悉的腳本語言python php perl大都是用c來實現的,就不是自足執行,這帶來的問題是你要實現任何新功能都要進入另一個語言去改,而且改了以後會影響全部的語言。你不能用自己的語言來寫一個新的功能。所以在設計perl6的時候,larry就說perl6要實現自足執行,perl6要自己執行自己。這就產生了激活問題 Bootstrapping(就像一個人想提著自己的鞋帶把自己提到空中,通俗說就是雞生蛋蛋生雞的問題)。如果一開始什麼也沒有的話,就無法激活。 Perl5的時候的語法是用的yacc語法,yacc 網址:http://www.lysator.liu.se/c/ANSI-C-grammar-y.html 是一個用c寫的語法解析器。他能幫你把你寫的程序解析成程序能夠理解的語法樹。 但是這種語法的靈活度比較差。所以在開發perl6的時候,就決定使用perl6 rules來解析perl6的語法。 而問題就是出在了rules的編寫上: 最初的計劃是利用 Perl 5 進行自舉:先擴充 Perl 5,使其執行於 Parrot 虛擬機器上(透過 B::Parrot 或 Ponie),再以 Perl 5 來實際編寫 Perl 6 編譯器,最後透過 p5-to-p6 轉換器將編譯器轉譯成 Perl 6。不過,雖然Damian編寫的Perl6::Rules模塊確實在 Perl 5上實現了Rules 的雛型,但對於建構編譯器而言仍顯得不夠成熟。 所以過去3年的perl6開發,走了一條錯誤的道路,整個開發perl6編譯器的計劃必須從新修正。 Perl6的轉機--pugs的開發: 在2005-2-1唐也開始了一件很瘋狂的事情:對於過去的perl6開發通通都不管,從新編寫一個解釋器pugs直接運行perl6。pugs 這個項目根過去的perl5、parrot都沒有關系,在它開始的時候,唐也沒有通知原perl6的開發人員,完全是自己另起爐灶,一開始大家都很迷惑,以為唐要取而代之嗎?唐不管larry了嗎?唐要篡位嗎? 所以唐就寫了一篇外典(Apocrypha,希臘文,這裡是針對larry寫的Apocalypses)來解釋自己開發pugs的原因。 網址:http://svn.perl.org/perl6/pugs/trunk/docs/zh-cn/01Overview.html 外典的意思就是用來表明不是larry寫的,而是唐自己在larry的基礎上對過去的。 這個項目開發的進度很快,在第7天的時候就可以跑大部分的運算程序,到了第20天就有了模塊,到了第22天就有上千個測試,到了3月5號,除了對象與rules方面的某些新功能以外,其他的perl6程序全都可以執行。 所以整個項目在以一種很恐怖的速度在開發,團隊現在有16個人。 現在已經有人寫perl6的小例子,還有人在把blosxom(一個輕量級的博客系統)往perl6上面做移植,這個東西已經基本可以在pugs 上面運行了,還有其他的很多常見的計算機的運算比如河內塔、快速排序、曼德布羅特集等等都可以在pugs上面運行了,而且執行的速度還很快。 唐開發這個項目沒有得到perl基金會的資金支持,主要是最近perl基金會的財源比較拮據,唐認為自己還有財力來獨立完成這個項目,所以就沒有要perl基金會的贊助。 Pugs的目的就是用來幫助perl6激活。 Perl6(larry啟示錄中描述的perl6)是一個很復雜很龐大的語言,在pugs實際開發的時候,會發現perl6語言(larry啟示錄中描述的perl6)有很多自相矛盾的地方,唐的開發團隊就把這些問題匯報給larry,然後larry就不斷地指導來在pugs的實際開發中就解決這些沖突。這樣pugs就可以實際的幫助perl6語言來進一步的完善語言設計。 Pugs的開發計劃:希望每個月可以放出一個版本,半年以後可以將pugs移植到parrot上面運行。 6.0: 首次釋出 6.2: 基本輸入輸出與流程控制元件、可覆寫變數(mutable variables)與賦值(assignment)。 6.28: 類(classes)與特質(traits)(perl6的對象系統)。 6.283: 規則(rules)與文法(grammars)。 6.2831: 角色組合(role composition)及其它執行時期功能。 6.28318: 宏(macros)。 6.283185: 如有必要,將 Pugs 移植至 Perl 6。 在最後一個版本也就是6.283185的時候就要完成pugs的基本使命,perl6的激活。 Pugs這個項目是用haskell,一種純正的函數式程序設計語言來寫的。 網址:http://www.haskell.org/ 大部分的人都不太懂haskell,唐也只是才學haskell兩個月。 唐正在鼓動perl社區的所有人來學haskell,包括larry。 網址:http://www.pugscode.org perl附錄: Perl簡單介紹: Perl是一種非常易於起步的功能強大且靈活的計算機語言。 Perl的成名起源於Internet的web cgi編程。 Perl的最大優勢在於字符處理(Perl有強大的正則表達式支持)。 Perl近年來的優勢則體現在擁有cpan上多達7000余個的模塊,每個模塊都可以幫你完成一部分甚至全部你想要完成的任何工作。 Perl的主要版本已經經歷了5個,Perl現在的版本為perl5。 Perl是一個開放源代碼的軟件,你可以自由的學習、使用甚至改進它。 Perl是hacker們最常用的工具之一,Perl也是系統管理員的摯愛。但是當你真的開始使用perl時,你卻會發現你想用perl完成任何你遇到的問題。 perl官方站點介紹: perl的官方首頁是一個鏈接型的頁面,在首頁上只有各種關於perl的連接,可以說是perl的一個門戶。通過上面的不同主題的鏈接,你可以去到各種perl的相關站點。 網址:http://www.perl.org Cpan介紹: Cpan是一個有很多perl模塊的web站點,perl現在只所以還為大家所使用,大部分是因為cpan的強大能力,在cpan中現在有大約 7000多個模塊。大約有1000多個是大家常用的。這些模可以直接拿來使用,實現各種各樣的功能。所以及大的方便了人們開發perl的軟件。因為很多的實現只需要你去cpan下載一個相應的模塊,然後安裝在你的機器上,再寫很少量的代碼就可以完成。因此使用perl的開發速度是非常快的。這也就是為什麼 perl是hacker的首選工具。他可以很快幫助你造出你想要的實現。 網址:http://www.cpan.org Perl核心開發人員的介紹與照片: Larry Wall、Dan Sugalski、Damian Conway。 網址:http://www.perlfoundation.org/gc/grants/2002.html Perlchina簡介: 一群國內perl愛好者成立的社團,致力於發展perl在國內的影響。 網址:http://www.perlchina.org 關於作者: alexe,一個無業的自由計算機者,熱愛自由軟件,正在努力編寫im與web相關的協議。msn:[email protected] 編後話: 我花了5天多的時間整理了這篇文章,算是為自己喜歡的perl做點小貢獻。 Perl作為一門語言已經有15年的歷史了,perl一直在不斷的革新自己,而perl6的開發更是要將這種革新發揮到極致,使perl最後能成為一種完美的語言。 perl6的開發可能使perl6成為繼.net與java後的第三大平台,但開放源代碼作者們並沒有什麼宏偉的市場設想,他們只是想將自己喜愛的語言完美到極致。雖然在開發perl6的過程中出現了重大的失誤,但這無法阻擋有理想有熱情的人們,這些人們的努力不計報酬,只是為了能給大家創造更好的perl,只是為了完成自己的美好理想。 希望以上的努力能讓大家更加理解這門與眾不同的語言,更加了解開放源代碼作者們的遠大理想與辛勤努力,讓大家知道還有人在不計報酬的為大家創造著更好的軟件,希望國內也能有更多的人加入這個陣營,畢竟這意味著我們在往好的方面去發展。 完成於05-3-22凌晨 家中床上PDA