本文的作者Sam Stephenson是Prototype js框架的創始人。他從2006年開始一直在37signals工作做web開發。除了Prototype外,他還開發過很多開源軟件,比如rbenv, sprockets 等。
程序員們一起努力來創建共享的軟件基礎工具:這是開源軟件的基本要旨。任何有想法、有激情并且有能力實現這個想法的程序員都是在為我們解決一個常見問題,向世界分享其解決方案,然后其他程序員會在將來一起改進這個方案,這就是回報。
做這種共享的基礎軟件工具通常需要具有瘋狂的大腦。我早該知道這些。在2005年,我開發了Prototype腳本庫——現代web瀏覽器應用設計 的第一代Javascript類庫。在當時瀏覽器創新一片死氣沉沉的景象中,Prototype是一個與眾不同的創意:我們能否通過擴充 Javascript的內置類型、通過增加具有新功能的類型來彌補Javascript的固有缺陷?
這種思想很快的被接受。Ruby on Rails選用Prototype作為其Javascript框架,很快人們就在一些知名的大公司,例如蘋果,紐約時報的網站里發現了它的身影。
然而,不久之后,事情越來越清楚:Prototype的核心思想和這個世界的發展方向是不一致的。瀏覽器廠商對Javascript復興所做的努力 是增加新的API,其中很多是和Prototype的實現相沖突。此時,程序員開始展現對一些小的,自我實現,模塊化的腳步庫的偏愛,而不是大型的框架。
僅僅短暫的幾年時間,Prototype從一個最佳的開發準則變成了反模式的代表——依賴于你在聽誰說,你甚至會相信它是Web上最糟糕的一個東西。可事實上,盡管架構上有缺陷,Prototype曾給眾多程序員帶來幫助。但是春來春去,我最終發現我需要走向新的征途。
作為個人,很難獨自承擔起Prototype的失敗。批評性的博客文章讓我感覺這是我個人價值的重創。看著朋友們都去使用其他的腳本庫,我感覺我的工作都是在浪費時間。
但這是一種我們讓共享軟件向前進步的過程。為了跟上最新的技術,我們不僅要能去嘗試新思想,還要能放棄那些已經不可用的或者有更好的思想替代的舊思想。我們必須有勇氣的坦率的說出代碼中的問題,去除內心的自負對犯錯的恐懼。
在開源世界里我學到了——我并不是我的代碼。對我的軟件作品的批評并不是對我個人的攻擊。我的軟件的替代品的出現并不是一個敵意或分化。它只是人們永不停息的對現狀改進的愿望驅動下的一個簡單的更新換代的結果。
我Sam Stephenson,37signals公司的一個程序員。
本文英文原文鏈接:You Are Not Your Code
文章來源:外刊IT評論