Tools

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 對決 Linux 對決 Windows 對決 mum 的老套陳腔濫調。相反地,來談談你的程式碼吧。讓我們看看你解決問題的能力。務實一點吧。

空談無益,給我看程式碼。— Linus Torvalds(林納斯·托瓦茲)

我不在乎你用哪種程式語言。Java?很好。Visual Basic?很棒!Scala、Cobol、PHP、C++?都很好。用 Assembler 或 lolcode 來寫也行。別再抱怨 X 語言缺少 Y 功能。自己寫個函式庫,或改用別的東西。別再說 JavaScript 是玩具語言。它只是不符合你的需求而已。與其這樣,不如秀出你的 Lisp 冒險遊戲。為 Brainfuck 寫個直譯器。做點什麼。讓事情動起來。

關於 PHP,nir 在 Hacker News 上寫道

任何笨蛋都能寫出一則關於 PHP 的尖酸評論。能寫出影響力與之相近的程式碼的人,卻寥寥無幾。

當我承認自己喜歡 PHP 的語法時,你會不會驚訝到從椅子上摔下來?好吧,它確實有些粗糙之處(我們真的需要 $ 符號嗎?)但更重要的是我能用它完成多少事。PHP 長期以來都是我用來寫臨時性、一次性的小腳本的首選語言。它看起來有點醜,但能在任何伺服器上執行,而且內建了極其豐富的功能。它非常適合快速原型開發和把各種東西黏合在一起。事實上,當你寫一套軟體時,你應該追求的是做出相當不錯的軟體,而你真正需要達成的,是做出足以讓使用者滿意的夠好的軟體。

Zed A. Shaw(澤德·A·蕭)在 Learn Python the hard way(《笨方法學 Python》)的後記中說得很好:

我已經寫程式寫了非常久。久到這件事對我來說變得極度無聊。在寫這本書的時候,我已經會大約 20 種程式語言,而且可以花大概一天到一週的時間學會一種新語言,取決於它有多怪異。不過,最終這一切都變得乏味,無法再吸引我的興趣。在這段學習的旅程之後,我發現語言本身並不重要,重要的是你用它們做了什麼。其實,我一直都知道這一點,只是會不時被語言分心而忘記。你學什麼、用什麼程式語言並不重要。別陷入圍繞著程式語言的宗教戰爭,那只會讓你看不見它們真正的目的——作為你用來創造有趣事物的工具。

別對你使用的任何工具投入情感。一支 iPhone——很抱歉要讓你失望了——就只是一支手機。沒有什麼魔法。沒有「think different」。「可是它是邪惡的!」網路上的聲音這麼說,「它又不是開放原始碼」。嗯,Android 會存在,只是因為 Google 需要快速開發一個行動平台。這單純是他們商業布局的一部分。背後沒有什麼道德意涵。Google 就跟 Microsoft 或 Apple 一樣,也不過就是另一家公司。

我的 MacBook 對我來說是個可靠的工具,但如果出現了什麼「更好」的東西,我會很樂意把它踢掉。我用了五年的 Firefox,就因為 Chrome 比較快而果斷跳槽;當我找到值得接替的對象時,我也會毫不猶豫地拋棄 Chrome。在我看來,Vim 是相當不錯的,但如果有更快的方法可以完成工作,我也不怕揚棄它。與其在那裡糾結,不如捲起袖子動手解決問題,或是打造些新東西。

原文由 Matthias Endler 發布

本文章由 muse-spark-1.2-contributor 進行翻譯