工具
原文由 Matthias Endler 于 發布,訂閱此部落格
自我有記憶以來,電腦科學就一直被宗教戰爭般的筆戰所侵擾。
針對技術議題爭辯可以是健康的,但筆戰不是。我已經受夠了。我厭倦了有人一直跟我說他們的工作環境有多棒、多快之類的話。好吧,那又怎樣,根本不重要。你的設備終究只是配角。你甚至不需要電腦就能寫程式。Donald Knuth 是在筆記本上寫演算法的。Alan Turing 是在一張紙上寫出第一台西洋棋電腦的。而且它還真的能跑。來超越看看啊!
對一般使用者來說,次好的系統大概就已經夠好了。只要花一點小錢,你就能得到一部非常出色的硬體,完全足以用來上網、聊天、整理照片、寫文件、聽音樂和看電影。用一台 Pentium IV、256 MB RAM 配上任何近期的作業系統(你很可能還能免費拿到)就能做到這些。拜託,你用舊的 Commodore 也能做大部分的事了。電腦早就已經夠成熟、夠可靠,能勝任這些工作好多年了。為了玩 Farmville 根本沒必要升級系統,就像舊車如果還跑得好好的,就沒理由買新車一樣。說到軟體,我們很多人還在用 Office 2000 或 Photoshop 8 或 VisiCalc,也沒覺得非升級不可。
專業人士的處境也差不多。嗯,或許我們會多花一點錢,但即便如此,跟我們的薪水比起來,硬體還是便宜得不可思議(希望如此)。沒有東西是完美的,但大多數時候這樣就夠好了。你十年前在用的那個編譯器?到現在還是堪用。我們至今仍在使用那些源自電腦石器時代語言、稍微改良後的後代。就算你在幫 NASA 做數值運算,你主要的工作環境也還是一個跑著文字編輯器或 IDE 的黑盒子。
我不在乎你用什麼工具來完成工作。找一個符合你需求的環境,然後好好用它、開心就好。也許你是在 Lemote Yeelong 小筆電上用 Emacs(哈囉,Richard Stallman),或是在工作站上用 Vim。都是一樣的東西:跑在一塊金屬上的文字編輯器。你不會因為用了 Nano、ed 或 TextMate 就變成比較差的程式設計師。用 Notepad 也完全沒問題。它能載入檔案、儲存檔案,並讓你在中間編輯它們。這功能已經比 Bill Gates 和 Paul Allen 當初為 Altair 寫 BASIC 直譯器時所擁有的多太多了。如果你找到了讓你滿意的東西,就堅持用下去,但別為此爭論不休。那不值得你花時間。
別理會那些引戰的人。說到軟體,別再掉進 FreeBSD vs. Linux vs. Windows vs. 某某某這種老掉牙的陳腔濫調裡。相反地,來聊聊你的程式碼吧。讓我們看看你解決問題的能力。務實一點吧。
空談無用,秀出你的程式碼。 - Linus Torvalds
我不在乎你用哪種程式語言。Java?很好。Visual Basic?很棒!Scala、Cobol、PHP、C++?都很好。用組合語言或 lolcode 來寫也行。別再抱怨語言 X 少了功能 Y。自己寫個函式庫,或是換別的東西來用。別再說 JavaScript 是玩具語言了。它只是不符合你的需求而已。與其這樣,不如秀出你用 Lisp 寫的冒險遊戲。寫個 Brainfuck 的直譯器。做點什麼。讓事情動起來。
關於 PHP,nir 在 Hacker News 上寫道:
任何笨蛋都能寫出一則挖苦 PHP 的尖酸評論。但很少有人能寫出影響力能與它相提並論的程式碼。
當我承認我喜歡 PHP 的語法時,你會不會驚訝到從椅子上摔下來?好吧,它確實有些粗糙的地方(真的需要那個 $ 符號嗎?),但更重要的是我用它能完成多少事。PHP 長期以來一直是我拿來寫一次性的、隨手即興的腳本時的首選語言。它看起來有點醜,但任何伺服器上都能跑,而且內建了數量龐大的功能。對於快速原型開發和把各種東西兜起來非常好用。事實上,當你寫一套軟體時,你應該追求的是做出相當不錯的軟體,而你真正需要達成的,是做出足以讓你的使用者滿意的、夠好的軟體。
Zed A. Shaw 在 Learn Python the hard way 一書的後記中說得很好:
我寫程式已經寫了非常久。久到這件事對我來說已經無聊透頂。在寫這本書的時候,我已經會大約 20 種程式語言,而且可以花大概一天到一週的時間學會一種新語言,取決於它有多怪。然而,最終這一切只是變得無聊,再也無法吸引我的興趣。在這段學習的旅程之後,我發現語言本身並不重要,重要的是你用它們做了什麼。其實,我一直都知道這一點,只是我不時會被語言分心,然後又忘了。你學什麼、用什麼程式語言並不重要。不要陷入圍繞著程式語言的宗教戰爭,那只會讓你看不見它們真正的目的——作為你用來做有趣事情的工具。
別對你用的任何工具投入感情。一支 iPhone——很抱歉要讓你失望了——就只是一支手機。沒有魔法。沒有什麼「Think different」。「可是它很邪惡!」有人在虛空中說,「它不是開放原始碼。」嗯,Android 之所以存在,只是因為 Google 需要快速開發一個行動平台。這純粹是他們生意的一部分。背後沒有什麼道德意涵。Google 就跟 Microsoft 或 Apple 一樣,只不過是另一家公司罷了。
我的 MacBook 對我來說是個可靠的工具,但如果出現了什麼「更好」的東西,我會很樂意把它踢掉。我用了五年的 Firefox,最後因為 Chrome 比較快就把它換掉了,而當我找到夠格的接班人時,我也會拋棄 Chrome。Vim 在我看來是相當不錯的,但如果有更快的方法可以完成工作,我也不怕把它丟掉。與其糾結,不如動手把問題修好,或是打造出新的東西。
隨機一篇部落格
留言
登入後參與討論