再論開源

edagarli發表於2014-03-07


幾年前我寫過一些關於開源的想法,如今再來看開源,我覺得問題已經不在說教上,而是在趨勢上。倒退十年或更久,那時候程式設計師相對還比較稀缺,軟體閉源開發出來之後別人模仿的成本高,而這些年計算機教育的普及讓碼農數量變得越來越多,更多人懂程式設計了,模仿的成本大幅下降。寫軟體作為謀生的目的已經在弱化,更多的是為了自己的實際需求,或社群名聲:你不開源?好,那我操起鍵盤重寫一個好了,你自己覺得涼快就永遠在那裡呆著吧,哥不等你了。

Sublime Text是一款據說有超級牛力的文字編輯器(不開源),可是它幾個月不更新使用者就受不了了,馬上有人操起鍵盤重寫了一個,Github上點讚的一路飆升到5000多。程式設計師就是這樣的動物,控制狂,啥事兒都想控制。如果他沒有辦法影響一款軟體,逼急了他就拿鍵盤投票。這樣會誕生優質開源軟體,當然不可避免也會造成各路兵馬混戰,浪費人力。所以當今的程式主們必須轉向合作的模式,沒有誰能永垂不朽。Github合併請求(Pull requests)給這樣的合作提供了方便的平臺,讓每個有能力、有意願的使用者都能揣著程式碼來投票,而不是傳統的一個或少數幾個開發者和一群使用者在郵件群裡戰鬥。

開源的含義已經不是開放原始碼,而是開放態度。在這方面,有幾位R核心團隊成員的態度糟糕透頂,當年的R & R(Ross/Robert)開源的成功如今變成了另一個姓氏以R開頭的日不落教授的霸權(就不用說是誰了,大家都知道),這讓R陷入一個尷尬的境地。如謝樑大俠所預測的,R的競爭對手已經不是SAS,而是Python,我對此表示完全同意。如果R核心團隊能有更開放的態度,也許還有希望和Python在統計領域一搏,畢竟有強大的先發優勢,但如今我們只能面對Python神教的不斷奚落去曲線救國,R本身我們動不了,只能從R包入手。

什麼是開放態度呢?R核心團隊多年不加新人了,近年加入的是Uwe Ligges,因為他維護CRAN的Windows編譯很多年了,估計深得教授歡心(一樣的倔強脾氣),我不覺得他加入能有多大的實質性貢獻。Radford Neal在百般無奈下自己開發了pqR,因為R核心團隊要麼不搭理他的建議,要麼過很久才有一個人出來說話。像這樣有計算機背景而且做貝葉斯的人(這樣的人更注重計算速度)才是R核心團隊最需要新增的人,而不是整天搗鼓出更多R CMD check的規則,把R包作者趕得雞飛狗跳。

要論R團隊中最具有開放態度的人,我認為是Douglas Bates,前些日子他無情吐了CRAN一臉,然後華麗轉身投入Julia陣營了。CRAN承認也好,不承認也好,它對使用者的傷害是顯而易見的。公平地講,CRAN這幫人當然也有著不可否認的巨大的的歷史貢獻,所有人都該感激。教授經常抱怨有些使用者不尊重他的勞動,我覺得這有什麼好抱怨的呢,林子大了總是這樣的,有些人確實很無禮,但有些人只是不懂規則而已,並不是有心冒犯,話說回來,誰讓你制定那麼多規矩呢,不是所有人都有閒心去讀懂那長篇大論的CRAN政策的。很多規則本來都可以通過自動化的方式解決而不必寫出來,CRAN非要堅持以古老的郵件加FTP方式維護,管理者和作者都累都煩,卻又都沒錯,都沒錯的時候打仗是最激烈的,這就要了命了。有時候教授也在玻璃房子裡扔石頭,修正R的bug的借用了別人的程式碼不致謝(好吧,有可能是看了別人的補丁然後自己閉眼重寫出來的),還要順便抹黑另一個R包,我不知道他為什麼那麼恨維克漢姆,我不是維大人的粉絲,但我覺得真沒必要這麼深仇大恨。

開放態度也包括使用開放的工具,包括版本控制工具和交流工具,而變化總是讓人感到痛苦。指望R搬到GIT世界可能希望不大,習慣SVN的人似乎總是與GIT勢不兩立(從此可以看出LyX團隊的開放精神),其實GIT要是沒有Github撐腰,可能也火不起來,好東西要火起來除了確實是好東西之外,還需要合適的介質,就如同LyX之於LaTeX,RStudio之於R,Markdown之於可重複研究——儘管後者是實質,前者是表象,使用者天生就是外貌協會的,再好的東西只要不好看就沒戲。再說交流工具,郵件列表是傳統工具,我認為它應該退出歷史舞臺了,弊病太多,作為吐嘈達人,我又忍不住吐了郵件列表一臉

總而言之,我覺得開源世界的大致勢頭就是:老一輩傾向於系統控制狂,什麼郵件系統版本控制系統bug報告系統,統統自己配置,但現在的系統越來越先進和複雜,想要控制整個系統需要花費越來越多的精力,這些雜碎的事情將耗盡主力隊員的精力,而且越來越落後;新一輩摩拳擦掌,雖然經驗不足,但解決區域性區域的問題還是可以的,而且能有效利用更現代化的工具提高生產力和影響力。未來自由軟體的競爭,將不僅是專業實力的競爭,更是綜合素質的競爭。在你盡情鄙視社交網路和各種酷炫網站並堅守“一切皆純文字檔案”的時候,你也會被時代浪潮淹沒。不公平?確實不公平,但事情就是這樣。

相關文章