[翻譯] 為什麼我選Ruby
http://www.codinghorror.com/blog/2013/03/why-ruby.html
為什麼我選擇Ruby
================
我已經使用微軟產品來開發程式數十年了。我從小開始就在家使用微軟Basic程式語言,
而且我第一個工作就是在微軟開發 Microsft FoxPro, Microsoft Access, 以及 Micro-
soft Visual Basic。各位看官,我現在可以看得到微軟產品的未來,它將會是一堆在
Wintel小生態圈中發展得很糟糕的 CRUD 應用程式。
對我們熟悉的人知道,我們過去用 Microsoft .NET 來開發 Stack Overflow 。使用
.NET也是它現在可以運行得這麼快的原因。所以當我們發表 [Discourse][discourse]
的時候,很多人都問我們
> 為什麼你們不用 .NET 來建 Discourse?
讓我說清楚:我 *愛* .NET 。離題一下,我這輩子最棒的事是把 Coding Horror 的貼紙
遞給 [Anders Hejlsberg][anders] 。容我表達一下我的興奮之情,一想到他我還是會
興奮得發抖。這世界上或許有五十位頂尖的程式語言開發者,而 Anders 是在他們之中
唯一開發出 Turbo Pascal 和 Delphi 語言的一人。由於 Anders 的頂尖建議, .NET
從開發初期就是一個富含頂尖設計的程式語言 -- 除了擁有 Java 的一切優點外,還
持續在這十年間有各種出色的進化,並且對其他各種動態型別程式語言有巨大的影響。
但就如同我一開始講的,我故意不選擇 .NET 作為下個專案的開發語言。你可能會期待
看到一個憤怒而義憤填膺的人在這裡長篇大論說離開微軟生態圈有多爽:*我自由了!
我自由了!感謝主我終於自由啦!*
不好意思,這我五年以前已經 [寫過了][old post] 。
我跟其他實務導向的工程師一樣,我只是選擇最有效的工具而已。雖然我喜歡 .NET ,
但這對一個 100% 開放原始碼的 Discourse 專案來說真的是一個很糟糕的選擇。為什
麼?有三個理由如下:
1. **授權** 我的天,授權。雖然這沒有花很多錢,但這邪惡且惱人的協定將會確保
你所有的程式碼還有開發出來的軟體都被授權籠罩著,而且視不同的開發程度及
版本、授權給誰,授權來做什麼用、哪些伺服器被授權等作用都不同。等等?什麼?
對不起我剛剛不小心陷入了 [瘋狂的授權地獄][rabid]。
2. **開發的摩擦力** 如果你想要開發出一個真正的開放原始碼軟體,你必須要有人
參與你的專案才行,如此它才是一個有生機的、會呼吸、會成長的好專案。而且如
果你不能將一個開放原始碼專案下載下來修改,你將不會跟社群有任何連結,這...
對開發來說的阻力真的是太大了。
我在 Stack Overflow 學到最重要的一件事情是,程式開發的世界是扁平的,世界
上任何角落都可能冒出開發鬼才。我想說的是,即使那個鬼才來自
[這個笨美國工程師][ugly programmer] 從來沒聽過的地方,說著我們聽不懂的
語言,但聽好了,他們還是用跟我們一樣的程式語言在工作著!很瘋狂吧!
使用微軟的工具練來開發很難吸引到其他地區的鬼才,例如阿根廷、尼泊爾、或
保加利亞的人。開放原始碼的作業系統、開源的程式語言還有工具練對這些國家
的人更公平,這是讓下一世代全世界的工程師一起來改變世界的基石。
3. **軟體生態圈** 當我在 Stack Extrange 時我們盡可能的開放我們的軟體平台。
我們致力回饋給這個社會,因為我們認為公司的價值在於我們能回饋多少給社會,
我們試著把許多有用的的作品開放出來。許多我們的作品並非源自 Stack Extrange
而是從 Creative Commons 授權中和許多開發者一起貢獻開發出來的,這不是所
有人的貢獻嗎?
你可以用 .NET 開發開源碼軟體,而且也有很多人這麼做,但這永遠就是不太自然
,永遠都有點怪怪的。無論你多麼努力,核心團隊永遠不會會接受你的補釘(patch)
在 .NET 社群中想要貢獻開源好似逆勢而行,大大小小的公司都不願意貢獻他們的
原始碼。或許是因為他們知道展示出來的程式碼很爛,隨便啦。開源文化就是不在
微軟的 .NET 生態圈中,而且那些寫一手爛程式的公司特別畏懼開源。如果你害怕
你開源的程式會丟臉,那份恐懼會深深地阻止你回饋給社群。開源碼社群最..迷人
的一點就是他們不會害怕展示他們自己的程式,也不畏懼談論自己的想法。
結果就是,對於任何你想用 .NET 來完成的任務,如果你幸運的話,你可能可以找
到一兩個可用的函式庫。而在任何熱門的開源社群中,你很容易就可以找到上百個
好用的函式庫來完成任務。是的,或許其中六個爛掉了、沒人維護、沒什麼用、或
寫得糟透了,但是由於開源碼社群活躍的特性,你還是可以找到超好的三個函式庫!
你絕對是贏家!
如同我 [五年前寫過文章][old post]:
> 我是個實務主義者。現在我選擇微軟的世界,但這不代表我不知道另外半個世界在
> 在幹什麼的。完成任務的方法永遠都有不只有一個。我選擇其中一種方法不代表這
> 這就是唯一對的方法或比較好的方法。把自己孤立起來絕對會變得無知,因此需要
> 了解另外半個世界是怎麼運作的,了解那些跟你活在不同世界的工程師是怎麼過活
> 的。他們使用什麼樣的工具,為什麼如此選擇。如果你兩邊都嘗試過了,你可以跟
> 據自己的觀察決定哪一邊比較好,如果另一邊比較好就可以加入另一邊的世界。
> 我打賭你說再見會說得很輕鬆。
我已經離開了微軟的世界。對的、錯的、好得、壞的都不重要了。我們只是根據我們
的需求決定了要開發專案使用的程式語言。
待續
[discourse]: http://www.discourse.org
[anders]: http://en.wikipedia.org/wiki/Anders_Hejlsberg
[old post]: http://www.codinghorror.com/blog/2007/05/giving-up-on-microsoft.html
[rabid]: http://www.codinghorror.com/blog/2009/07/oh-you-wanted-awesome-edition.html
[ugly programmer]: http://www.codinghorror.com/blog/2009/03/the-ugly-american-programmer.html
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 207.151.231.159
※ 編輯: dryman 來自: 207.151.231.159 (03/23 12:28)
→
03/23 12:35, , 1F
03/23 12:35, 1F
※ 編輯: dryman 來自: 207.151.231.159 (03/23 12:35)
推
03/23 17:42, , 2F
03/23 17:42, 2F
→
03/23 21:25, , 3F
03/23 21:25, 3F
Translate-CS 近期熱門文章
PTT數位生活區 即時熱門文章