google code-beautifer

星期六, 3月 28, 2009

歷史文件:自由自由,多少人假汝之名

(註,原於3/25/2004在軟體自由社群電子郵件論壇發表
http://list.softwareliberty.org/pipermail/slat-talk/2004-April/00414.html,由於原網站存檔管理不善,聯結逸失,除了排版外,跟原文引到不相干本文大部份宗旨的某人名字換成"User1725"(免得遭到無理的干擾),內容儘量不更動,進一步的觀察會由另文探討,這裡僅作歷史文件存檔)

對單純使用軟體著眼,自由軟體/開放源碼軟體,差異甚小。然而要進一步確保所有人能充分基於之前的分享成果發展, 自由軟體有較具體的概念。

這兩個詞概念漢語都是從英文翻譯進來,所以中英對照都只有一對一的,沒啥"自由軟體"可以翻 "open source"這回事。想要用同樣的詞但不同用法要註明,不然就是存心混淆視聽,這是無庸置疑的基本常識。
兩者或同時並列或分開,對大多數人並無太大影響,端視立場。硬是要混在一起,只有兩種可能:
(1)太不夠專業, 或
(2)太專業故意找開放源碼軟體裡自由的漏洞 (這也是會什麼一定要有人堅持自由軟體的立場)

然而為什麼52000K計畫資助的網站都同時"誤"譯呢?(特別是自由軟體鑄造場號稱參與執行團隊者有17人...)
發現錯誤,不是一兩天的事 早在九月就已指出,見
http://list.softwareliberty.org/pipermail/slat-talk/2003-September/004062.html
人難免犯錯,這封信延到這時才發,事實上是希望讓他們能朝比較正面的方向改進,見
https://list.softwareliberty.org/pipermail/slat-talk/2003-October/004068.html
https://list.softwareliberty.org/pipermail/slat-talk/2003-October/004069.html

但看到自由軟體鑄造場的正式回應我覺得很失望,我已排除了上述(1)無意間犯錯的可能性。這已是"用辭者立場" 的問題, 不是 "翻譯"的問題。把幾件事連起來,讓我有"大家被迫玩遊戲"的感覺,見
1. http://list.softwareliberty.org/pipermail/slat-talk/2003-December/004552.html
2. "2003開放源碼軟體競賽頒獎
10:55-11:10 (暫定) 威盛電子進駐自由軟體鑄造場儀式"
引用於 http://list.softwareliberty.org/pipermail/slat-talk/2003-December/004568.html
從來就沒聽過威盛啥時開始作自由軟體? 那麼多人(包括一些對社群正面公開友善的廠商),為何要獨尊他們? 生意大聲音大嗎?

感覺頗有又在選舉前拚經濟的味道,硬是要把"產業+開放原始碼軟體"與自由軟體混為一談。下一步是不是封閉軟體也能號稱自由軟體?我同意要求正名的說法,不然照這種玩法,老共也能理直氣壯的說 "中華X民XX國在台灣" 那豈不是天下大亂?

在這要強調,不單是開放原碼軟體,自由軟體也是可有商業機會的。只是與往常軟體工業用的商業模式不同,若真覺得"開放原碼軟體"不該缺席。其實用"自由/開放源碼軟體鑄造場計畫"為名很好,無論軟體在不在強調訴求商業發展都能包進去。只要不侵犯自由軟體強調維護的"自由" 一些細節的東西大家可以相忍為國。不能因台灣的一些單位的私心誤用,硬把開放原碼軟體與自由軟體混為一談,硬要去接自由軟體的預算,沒照原合約中要求的自由軟體概念來強調維護"自由"。卻來取巧用開放源碼軟體企圖找自由的漏洞,又不願改進,這樣已事關誠信立場。

自由就像空氣一樣,平時摸不著看不到,在平庸生活內很難去體會。只有要突破不一樣的生活方式,如潛水到深海看美麗的珊瑚,或爬到極高的山極目四望,才會開始體驗到氧氣的可貴。我覺得非常難過,在西方文明引進到台灣的過程中,許多人往往只學到了皮毛,卻沒學到了相互尊重個人價值的理念。以致於無論怎樣的科技文化革新理念,一搬過來就水土不服,永遠是個次等國家。台灣之所以有今天這個鳥樣,一是有人總愛是要搞這種掛羊頭賣狗肉的把戲,一是有太多的鄉愿縱容這種共犯結構,我覺得必須大聲攤開來談。

在這種情形下,像User1725的擇善固執是必須的,大家應要聲援User1725 的抗議。你我就該當個快樂的豬,整天吃著別人調好的飼料? 假如臺灣同胞都這樣想,我就認了。假如你和我一樣不干於當次等人民,我希望您一起來關心這個問題。

( 註 原擬在月前呼應User1725的訴求,時值臺灣總統大選,為避免被不當影射政治立場,故延至今日才發,見諒)

星期六, 3月 07, 2009

Linux 的perl開發環境

有個朋友問起開發軟體用Python 跟Perl 的比較,從我的觀點來看:

1.作研究的人沒有什麼挑程式語言的條件,往往是事情複雜到需要整合好幾個領域,不可能一個人用一個程式語言從頭搞到底,那樣東西還沒做出來你就被別人發表的成果淘汰了。所以你需要什麼樣的武器(通常是以某個語言寫出來的程式庫)來處理某個次領域的事情,你就用那個語言去做基本的處理及呼叫程式庫。再用其他或相同的語言把中間過程串起來。像我本身,約莫是平均一年需要學一個新的程式語言。

2. 光比較Python 跟Perl :為了處理web 的資料,其實我一開始是從Perl 學起,那時web mining programming還沒多少人知道該怎麼作才好。 Perl 寫短程式實在很精簡,但是可閱讀性實在是太差,我覺得比Lisp 還要差,我看自己以前寫的 perl碼,當時要是沒有詳細註解的話,要花很大的力氣。但是為了精簡程式選perl,卻要花更多的時間去詳細註解的話,實在是自相矛盾的作法,所以現在有的選的話,我會以python 優先。其實不只是對perl 而言如此,對lisp 也是一樣。

下面就是從這樣觀點來看perl 的開發環境

開發介面平台


不知道是不是大家比較少用perl 開發大一點的程式,相對於python,perl 的開發介面平台在 inux 上比較少。
我現在只知道emacs ,跟Eclipse 。另外有一個在winodws 下用Pascal 寫的Open Perl IDE,也許可以用Lzaurus/free pascal 來在Linux 下編過,不過我還沒時間試。

Eclipse


Eclipse 的壞處就是笨重,用這麼肥的IDE 想來開發輕薄短小的perl實在不太有道理。連在AMD雙核心 4GB Ram 的機器下跑都有點小遲鈍,而且Eclipse 的笨重不只是Eclipse 本身體積肥而已,連寫個小程式都很麻煩:
首先要開一個計劃,然後加上計劃下的程式。假如你之前在外頭寫好了幾個部份片斷程式,恭喜你,片斷程式要匯進去計劃有夠麻煩的,開個不同檔名再剪貼文字過去可能還比較方便。不過在emacs 上的ECB 也有那邊的問題,有時得忍受一下交互使用。要是覺得連去巷口市場買菜都得騎隻恐龍不是什麼大不了的事的話,那Eclipse 這隻大恐龍倒是上天下海無所不包。

Eclipse 的介面,可參考我後續的介紹,

Eclipse 的perl 外掛叫ERIC,目前有兩大版本:0.5 穩定版跟0.6的測試版,我是用0.6版,沒什麼問題。
安裝EPIC這個外掛的步驟在不同版本會有稍許不同,在mandriva 下的eclipse3.4 版是這樣:
啟動Eclipse後在主選單的Help的下拉式選單,選擇Software Updates,然後在Available software的分頁下選擇Add site,在Location 的URL視窗鍵入:
http://e-p-i-c.sf.net/updates/testing
選Find and Updates後,建一個新的名稱(如Eric)給EPIC,然後按下finish後再去勾選這個 Pac外掛做update

把EPIC 外掛裝上後。在主選單file ->new->other
下就會看到Perl型別的選項。先開新一個計劃之後,再依需要慢慢把程式檔加進去。

我試過了Eclipse 的EPIC ,發現所有的變數都要用my 宣告成當地變數,不然eclispe會給你一堆紅色錯誤警告。但要是這樣作的話,在Emacs 下就沒辦法被ECB辨識成變數來顯示,IDE效果就打了折扣。

我最喜歡的一點是在Eclipse 下,只要把游標指到某行的某變數下,在其他行的該變數也會用不同顏色顯示出來,這點在除蟲時很方便。不過這好像是透過全文檢索,所以連不是變數的像標點或字串也行,這讓我懷疑是不是了Eclipse 反應遲鈍的原因之一。

Eamcs/ECB


ECB 來寫C/html 是很棒的IDE 。可是對於那些semantic (ECB 賴以解析程式碼的模組)支援很有限的語言如 perl ,表現就只是差強人意。Emacs 的syntax highlight 是沒有問題的,但是ECB左側變數列表會不完整,得用Meta-x!etags *.pl幫現在的perl程式碼編符號表,直接改emacs 裡的程式碼而不重整符號表是不成的,那些在 my 後面直接宣告而且給定起始值的區域變數都顯示不出來。所以要跟eclipse交互使用環境會有一點問題。

結論


兩個IDE 都各有優缺點,我現在是一頁就能看完的程式用emacs 來處理,超過一頁再來用eclipse發展。

延伸閱讀


用Emacs 開發C 程式