或許你也患上了開發癱瘓癥
英文原文:You Too May Be A Victim Of Developaralysis
親愛的開發者們:你們是否因為自己只精通于三大設備平臺的八種編程語言而惴惴不安?又發現一個 JavaScript 框架是否會讓你不寒而栗、愁眉苦臉?你是否曾經因為無法確定哪個云平臺最適合而把業余項目一再推遲?
或許你也換上了開發癱瘓癥(Developaralysis)。顫抖吧,這個病是治不好的。
如今開發者們可選的技術方案多到令人發指,讓人眼花繚亂,透不過氣來。過去幾年里,我拿著別人給我的酬勞,寫過 Java、Objective-C、C、C++、Python、Ruby、JavaScript、PHP(對不起,這個也算),用過各種各樣的 SQL/鍵值/文件數據存儲技術(MySQL、PostgreSQL、MongoDB、BigTable、Redis、Memcached 等等)。我是否自我感覺良好?上帝啊,一點也沒有。我反而感覺到愧疚,因為我還沒有用過 Erlang、Clojure、Rust、Go、C#、Scala、Haskell、Julia、Scheme、Swift 或者是 OCaml。
我就是一名開發癱瘓癥患者:軟件產業發展太快、任何一個人都無法跟上,從而對我的意識造成了毀滅性打擊。
上面提到的幾乎任何一種語言,你都會找到無數可選的框架、套件和庫——看得頭都要爆炸了。如今僅僅是把 JavaScript 的框架和庫的所有排列認真評估一遍就要花上幾個月的時間。另外,你知道 Ruby 語言有多少種 gem 包嗎?有多少種 iOS 框架嗎?有多少種 NewSQL 或 NoSQL 的數據庫技術嗎?更不用說從 Hadoop、Spark 與 Google Dataflow 中進行選擇了,究竟是用 Avro,還是 Thrift,還是協議緩沖區,等等,等等……
還好,移動領域已經簡化到了 Android、iOS 兩大壟斷平臺——盡管也隱藏著一些交叉代替方案,比如 Xarmarin 或者 PhoneGap、Sencha 這樣的跨平臺 HTML 技術——但是確定在哪個平臺上部署后端、如何部署又會讓你頭大。我開發過的各個系統部署在 Heroku、Amazon Web Services、Google App Engine、Google Compute Engine 以及 Parse 上面……這讓我感覺非常糟糕,因為我對 OpenStack、Force.com、Azure、Appfog 一無所知,好多 AWS 服務我也從來沒有真正用過,說多了都是淚。
I Am Devloper @iamdevloper
2014 年編寫簡單網站的步驟:
1.安裝 Node
2.安裝 Bower
3.選擇 CSS 框架
4.選擇敏捷的方法
……
47.寫幾行 HTML 代碼
如今的開發者面臨著太多的選擇,以至于使用的許多工具僅僅是用來管理另一堆工具:比如 Bundler、Bower、CocoaPods、Pip 等等。這些東西太棒了!我完全離不開它們!別高興得太早。你開始使用另一堆工具后,等用到一半的時候你真正理解了它們的內容,你開始覺得這樣的配置還不夠 用,你有點想要把它們重寫一遍了……也許再找另一個工具代替……
可悲的是,如今開發者可用的語言、工具、框架以及平臺的多樣性和絕對數量龐大到讓人畏懼。當然沒人會承認這一點。所有人都想裝作精通所有語言的編程大師。然而事實卻是,我們都已經深陷于開發癱瘓癥之中無法自拔。
即便收集了各種信息做出了最明智的選擇,結果往往也適得其反。比如說,在項目開始前,你真的花時間分析了所有的可能,克服了由此產生的學習曲線,結果卻被一些用著 PHP、Swift 這樣易于上手的語言,寫著表情符號變量名的小屁孩搶了市場先機——
——不過另一方面,如果你選擇使用 Swift 和 PHP 的話,你就會生活在無休止的恐懼之中,擔心一些C#/Haskell 程序員高手很快就會做出更好的產品幾百你,就像保羅·格拉漢姆(Paul Graham)很多年前用 Lisp 語言編寫 Viaweb 那樣。回憶往昔,他這樣寫道:
當你選擇了技術之后,你必須要忽略其他人在做什么,全心全意思考怎樣做到最好……事實上我們確實有一個秘密武器……我們開發軟件的速度超出了所有人的想象……我們用一種全是括號的語法奇怪的 AI 語言編寫出了我們的軟件。
再說回開發癱瘓癥。我們應該選擇已經掌握的技術嗎?這樣我們就能立刻動手開發,無需克服學習曲線,但是需要生活在恐懼之中,擔心其他人在以更 好、更快、更優雅的方式實現同樣的產品,擔心到了明年我們的技能就跟不上時代、喪失競爭力了。還是應該選擇未知的新技術?因為我們熱愛學習,更好的工具使 用起來不僅更加有趣,而且能夠帶來巨大的競爭優勢……付出的代價則是大量的時間、精力和認知負荷。
這個問題太難回答了!不存在絕對正確的答案。因此每個月都是開發癱瘓癥發作月。我馬上會做好五顏六色、閃閃發光的絲帶給你們佩戴,只要等我選好用哪種 3D 打印機、哪種微控制器、哪種 LED 軟件、哪種無人機系統就行了。恐怕要麻煩你們期待很久很久了。
<span id="shareA4" class="fl">
</span>
</div>