二十多年前,當 Ruby on Rails 推出時,我還是一個二十多歲的年輕程式設計師,深信任何嘗試過我的堆疊的人都會接受它在解決 "Web問題 "方面的普遍優越性。於是,我走上了改革之路,試圖用尖銳的論點說服未開化的大眾。
在很長一段時間裡,我都認為這是行之有效的方法。這就是為什麼 Ruby on Rails 一飛沖天,成為有史以來最受歡迎的全棧Web框架之一,激發了無數的克隆,併為基於它的公司創造了數千億的企業價值。
但我錯了。這並不是這場科技運動想要的結果。
從早期開始,我和成千上萬採用 Ruby on Rails 的程式設計師交談過,你知道他們每個人都提到了什麼嗎?
- 是那段最初的15 分鐘部落格影片。
- 影片中沒有任何與其他解決方案的比較,也沒有任何反對替代方案的具體論據。它只是展示了你能用 Ruby on Rails 做什麼,A/B 對比自動在每個接觸過它的程式設計師腦海中執行。
- 影片中展示一些很棒的東西,讓那些對現狀不滿意的人受到啟發去看看。因為無論如何,只有這些人才能轉變為你的支持者。
我從未見過一個對函數語言程式設計等深愛不已的人被物件導向程式設計的論點所折服。
你根本無法讓別人屈服,而且如果你嘗試這樣做,通常會適得其反。但是,你絕對可以吸引那些對現狀不滿意的人,讓他們給另一種選擇一個機會,只要你向他們展示如何操作,讓他們自己總結如何讓他們的程式設計生活變得更好。
我還認識到,程式設計師有許多不同的智力形態和規模:
- 其中有些人會對函數語言程式設計情有獨鍾,這就是他們的激情之路。
- 另一些人則會喜歡虛幻的 JavaScript,放棄構建流水線也就釋然了。
- 還有一些人會在 Go 中找到自己的靈魂。這真是太棒了。
事實上,Web工作允許有如此多樣化的生態系統選擇,這是一個令人難以置信的功能,而不是一個錯誤。
我在 Ruby 中找到了我畢生的工作和激情。我有朋友在 Python、Elixir、PHP、Go 甚至 JavaScript 中找到了自己的工作和激情。這真是太好了!這就是我對你的全部期望。我希望你快樂。我希望你能找到最合適的語言,用最合適的構思模式,像 Ruby 一樣,開啟你的心扉,享受編碼的美妙遊戲。
這與僅僅說 "凡事有得有失,使用最有效的方法 "是不同的。在我看來,這有點逃避現實。並不存在一套普遍適用的權衡標準,能讓某件事客觀上 "最有效"。程式設計難題的一半在於如何與持久的動力源泉建立聯絡。如果我不得不整天為 Rust 程式設計,我也不會感到快樂(但我非常喜歡該社群中那些喜歡程式設計的人所開發的工具)。
這也並不意味著我們應該放棄對優缺點的技術討論,但我認為,以這種方式進行討論通常更有效:
- 這是我喜歡的東西,為什麼我喜歡它,看看我的程式碼,我的成果,看看它是否也能勾起你的興趣 。
程式設計是一項美麗的遊戲。如果讓我在豪車和程式設計之間做出選擇,我會毫不猶豫地放棄我擁有的所有豪車。
智力上的刺激,偶爾 "進入狀態 "後的興奮,都是對可可-香奈兒 "生活中最好的東西是免費的,其次才是非常昂貴的 "這句話的具體詮釋。
程式設計是 "最好的東西 "之一,對西方世界的每個人來說幾乎都是免費的(其他地方也越來越免費)。
因此,讓我們盡己所能,以最能體現我們概念能力的姿勢來玩這個美麗的遊戲,並創造出一些美妙的程式碼。