(編按:本文作者為資深 Perl 程式開發者,YAPC::Taipei 2005 主要講者)
即將在月底訪台的宮川達彥是目前日本 Perl 社群的名人,同時也是 CPAN(綜 合典藏網,全名 Comprehensive Perl Archive Network,為 Perl 模組集散地)中模組貢獻數目第三名的多產程式設計師。這次非常有趣的由 CPAN 上分別排名第一、第三名的 Autrijus(以下簡稱 A)跟 Miyagawa(以下簡稱 M)對話,確實激發出一系列精彩的火花。
A: 你從什麼時候開始用 Perl?M: 我從 1996 年開始用 Perl。那年我大一,Netscape 剛開始流行,所以我就用 HTML 開始做自己的「個人網站」。後來我想在網站上加上「互動式」功能,所以就學著用 Perl 來寫 CGI,跟其他的小毛頭沒什麼兩樣。
A: 當時為什麼用 Perl,而不是 ASP 或別的語言呢?
M: 我那間大學的電腦上只有裝 Perl。:-) 雖然還有 C 和 Pascal,但是 Perl 要好寫多了。
A: 之你還用 Perl 做了些什麼?
M: 大三時,我開始在日本歐萊禮兼差,幫忙做做網站、打打雜,同時在大學裡修了計算語言學。Perl 在這兩方面的威力都很強。到了大四,我換到「On The Edge」公司打工,當時的技術長就是 Dan Kogai;那間公司現在叫「Livedoor」,在日本還蠻有名的。在那裡我學到不少 Perl 和其他 Unix 軟體的「商業應用」。從那時到現在,無論在工作還是自己的專案裡,Perl 一直是我最喜愛的語言。
A: Perl 最讓你喜愛的特點是?
M: CPAN。其次,Perl 能輕鬆達成簡單的事情(單列程式、XML::Simple、LWP::Simple),也辦得到複雜的任務(物件導向、許多優秀的框架和元件等等)。
A: 你自己做的專案裡,Bulknews 和 Bulkfeeds 是最出名的了。可以介紹一下這兩個網站嗎?
M: 這兩個都是我自己架的網站,從架構、硬體設備到程式設計都是我一手包辦的。Bulknews 是 2000 年開始的新聞彙集器;它自動收集新聞網站的內容,存到 MySQL 資料庫裡,然後用漂亮的 HTML 和 XML(RSS) 顯示出來。當年提供 RSS 的網站還不多,所以 Bulknews 對技客們很有吸引裡。Bulkfeeds 則是個 RSS 彙集與檢索器,在 2003 年開始營運;它和 Technorati、Feedster 差不多,但有提供自己的 REST 程式界面給其他開發者利用。
A: 這兩個網站都是用 Perl 寫的?
M: 沒錯。Bulknews 用的是 Perl 5.6、DBI、HTML::Template、MySQL 3.x;Bulkfeeds 就比較現代化了,用的是 Perl 5.8、Encode、Class::DBI、Template-Toolkit 和 MySQL 4.0。Bulknews 還留在 EUC-JP 的時代,而 Bulkfeeds 已經採用 UTF-8 了。
A: 你在 CPAN 上貢獻了非常多的模組...
M: 你也是啊... *笑*
A: ...其中有多少是從 Bulknews/Bulkfeeds 等實際運行的專案提取出來的?
M: 一大半都是吧,像 Class::DBI::AbstractSearch、Class::DBI::Pager、Email::Valid::Loose、HTML::MobileAgent、Date::Japanese::Era 都是為了工作寫出來的模組。
A: 你也會寫一些自己用不到的模組嗎?
M: 是,我也有做過幾個「write-only」的模組。讓我想想...
A: 像是 Acme::Module::Authors?我覺得它的概念很不錯。:)
M: 正是。PHP::Session、Inline:TT 這些我也從來沒有用過。但有時我還是會接到 PHP::Session 和這類模組的瑕疵回報。*笑* 最近從 Bulk* 專案裡,我提取出了一些 WebService::* 和 XML::* 模組,這些我應該會在 YAPC::Taipei 的演講裡提到。
A: 你常常提到「Web Service」和「Web 2.0」這些字眼。可以簡單解釋一下嗎?尤其是「Web Service」這個字,現在大概沒人搞得清楚它指的是什麼了。*笑*
M: 沒錯。我想「Web 2.0」是既可讀也可寫的全球資訊網平台,為開發者提供簡易的程式界面,其中的資訊則是由常民大眾所提供的。Flickr、del.icio.us 和網誌系統都是很好的例子。不過,它們的 WebService API 的設計還有待加強... *笑* 但無論如何,總比私有的軟體架構好多了。
A: 你覺得 Perl/CPAN 在 Web 2.0 裡會扮演什麼樣的角色?
M: 好問題。嗯...
A: Perl 還會像 1996 年那樣普遍嗎?*笑*
M: 嘿,不要搶我的台詞!*笑* 我覺得 Perl 還是足夠強力,能讓技客和開發者們在 Web 2.0 平台上盡情揮灑;WebService::* 這些模組就是很好的證明。另一方面,Perl 也有很酷的網站框架;像是 Maypole 和它的下一代 Catalyst 等。43things 和新的 iPod 廣播網站 Odeo 就是用 Ruby on Rails 架設的;同樣的 Perl 在 Web 2.0 的軟體和產品裡也有它的一席之地。
A: Ruby on Rails 確實不錯。你覺得 Catalyst 可以和它一較高下嗎?
M: 我其實只是在上星期,花了兩三個小時玩 Catalyst 而已;我很喜歡它的設計架構和易於測試的特性。我不知道 Catalyst 是否能比 Ruby on Rails 還要強大,但是我覺得它有這個潛力。
A: 你是涉谷 Perl 推廣組(Shibuya.pm)的發起人;可以介紹一下 Shibuya.pm 的歷史和現況嗎?
M: 我們是在 2003 年 1 月成立的。當時東京 Perl 推廣組(Tokyo.pm)已經成立很久了,但是因為某些原因,一直不夠活躍,對技客的吸引裡也不夠。所以我找了一些 Perl 黑客,共同成立了新的推廣組。當時涉谷被稱為「Bit Valley」、「日本的矽谷」,搞資訊的人很多。我們每兩三個月會舉行一次「技術講座」,把 Perl 黑客們聚在一起,討論有趣的話題。我們的簡報和紀錄都可以在 https://shibuya.pm.org/ 看到。
A: 你對其他想成立 Perl 推廣組的人,有什麼建議?
M: 儘早連絡上其他的 Perl 技客,舉辦簡報或黑客松等活動。像 Tokyo.pm 那樣一伙人聚著喝啤酒是很有趣沒錯,但是長久下來,沒辦法留住真正的黑客。
A: 所以 Tokyo.pm 吸引的是酒客嘍?*笑*
M: 哈,我想是這樣沒錯。*笑*
A: 你也寫了很多書。你比較愛寫程式,還是寫字呢?
M: 兩個都愛。我想我比較喜歡寫程式,但是在寫 CPAN 模組時,我還是會先寫測試、再寫文件,最後纔輪到程式碼。
A: 你今年為什麼會想來台灣呢?
M: 好問題。我去年跳槽到 Six Apart 公司之後,工作上有很多不錯的經驗,但其中最明顯的是公司的「全球化」概念;好比說,我們在舊金山、東京和巴黎都有辦公室。所以,作為全球化公司的一份 子,我也想參加日本之外的活動。所以我收到你們的邀請,就決定過來了。另外,我也想到台灣來買 Super Shuffle。*大笑*
A: 所以你在 Six Apart 的工作愉快?
M: 相當不錯。我是在東京辦公室工作,和美國那邊連線。唯一不方便的地方,就是日本和美國之間的時差。當我正要睡覺時(通常是凌晨 3 點),他們剛好準備起床上班(太平洋時間上午 10 點)。
A: Six Apart 也是「Powered by Perl」的公司嗎?
M: 沒錯。TypePad 就是用 mod_perl 和一大堆 CPAN 模組架起來的。
A: 是,創始人 BTROTT 在 CPAN 上也有很多作品。
M: 正是。我們公司裡還有 PLINDNER、BYRNE、EZRAKILTY 這些人。
A: 你對 Perl 的未來有什麼看法?
M: 這不容易回答。在日本有人問我 Perl 6 的問題時,我總是說它是個「泡沫軟體」。不過我在你們面前不太敢這樣說。*笑*
A: 我以前也常跟人說,Ruby 就是「沒有到處打廣告的 Perl 6」。但是現在 Pugs 的 pugscc 已經可以運作了!
M: 對,Pugs。那不是你用 Haskell 寫的 Perl 6 嗎?它聽起來很可怕!
A: 可是它可以運作了,我們有 1500 個測試!*笑*
M: 真不錯。不過,我對 Perl 6 的興趣不高。但是我覺得 Perl 5 一旦能在 Parrot 虛擬機器上執行,能跟 Python、Ruby 等其他語言共享程式庫,對輕量級語言的開發者來說,將是天大的好消息。
A: 我們大概就訪問到這裡。你對讀者還有什麼想說的嗎?
M: 如果你們對 YahooMessenger 有興趣,請直接認領去管吧,不要再寄瑕疵報告過來了。*笑*
(本文轉載自 Newzilla)