Ian Bicking:跟 Python 說再見

jopen 10年前發布 | 13K 次閱讀 Python

Ian Bicking:跟 Python 說再見

這篇文章有點長,這并非聲明觀點,只是對我一路走來的反思。我很久以前就離開了Python世界,但我從沒機會說個再見。

在我多年前離開Python的時候,無限感慨,不太承認我不會再回來。當我對PyCon2013的提議被拒絕時,我非常泄氣并且感覺到我不再是Python社區的一員了。

Python社區是我第一個也是唯一一個參與的開源社區。參與到Python里是經過深思熟慮的決定。在大學里我對Scheme和 Smalltalk感興趣。這些語言很高端大氣很有意思,但是很難找到實際用戶。Scheme的庫一直不太完善,社區也不太活躍。而與之相 反,Smalltalk是能實際應用的,它是為喜歡創造東西的人創造出來的。但是Smalltalk從原來知道現在一直是它自己的世界。它在文化和技術上 是前互聯網,前開源和前在線社區。盡管Smalltalk環境和語言有好的東西,可是它仍然無法滿足這些富有潛力的需求,盡管它試著去適應。

在我大學生涯的尾聲,我有意識的去尋找一個新的鉆研方向。我折騰了Perl和C,但它們不適合我。然后我發現了Python,它足夠好了我也就沒有 去找更好的語言了。我并沒有像原來喜歡Scheme和Smalltalk那樣喜歡Python——Scheme就像是為我打開了世界的大門,而 Smalltalk是一個神秘的世界,就像突然從遠古的廢墟來到先進的文明。Python相對比較實用——我在那時候并不是興致勃勃的,我想要做點東西出 來。

然后我用Python做了很多東西。我當時在做web開發,而我的熱情更多的是創造一個工具來做項目而不是直接做項目。我在那段時間做了一些很酷的產品,不只是庫,但是因為一些原因,我只想一些更小的模塊。并且我發現了一個Python里的社區。

想當年我貢獻了Webware,感覺跟現在Python Web開發完全不是一個時代的東西。我寫了SQLObject,這是我的第一個感覺到:我去!有人居然在用它,而我不太確定對它的感覺的這么一個庫。但是 SQLObject探索了很多元編程的概念并且這在當時的Python世界里是相當新奇的。與此同時,維護它是個沉重的負擔。花了我太多經歷的來解決問 題,當我的興趣完全消退之后,我把它交給Oleg來更好的維護它。這后來成為了我一個經常做事的模式。SQLObject幫助了下一代的ORM庫 SQLAlchemy的產生,這對我來說已經夠不錯了。

接下來就是WSGI,它精巧的功能基礎讓我很興奮。我在Paste里創建了整個Web框架工具集。只有很少人理解我用Paste在做什么。一些人喜 歡Ben Bangert能夠看到代碼的本質,并將其以可用工具的方式把它帶到世界上。Python Web框架在那時候還很糟糕,最后使用一個統一的方法是更加成功的技術,而不是像我在做Paste的時候自己造輪子。我還不確定從那有什么樣的教訓。沒有 總的教訓,但是對使用場景有了更多的理解。并且理解了你對一個問題能夠做些什么。我感覺我現在理解了豐富的技術視野和遠見的重要性,我還更加學到了如何在 正確的環境里組合與協調一群對的人來走向成功。

話說回來我感覺我達到了使用Python編碼10000小時的標準。我寫了WebOb,從Paste里吸取了教訓對于設計庫有了更好的直覺。我仍然 覺得它在將HTTP映射為Python方面是最棒的。其他的庫包含更多的Web開發方面的東西,或者有更好的文檔和更多的用戶,但從一個特別的角度來看, 我仍然為WebOb感到驕傲。它對于很多人在構建Web框架的探索中是很重要的一塊。其他與它同時期的庫有lxmlhtml,比較小的如 WebTest,ScriptTest,MiniMock,Tempita。那段時間就像是清空了我的系統,上傳了一堆我的想法。

但我最成功的工具是virtualenv和pip。這是我投入了最多感情的作品。它們是關于:處理部署時的麻煩(virtualenv),pip能 讓人不再抱怨setuptools 里的easy_install。我不確定我是否埋怨這些工具在使用率上的很不容易的成功,或者它們在某種意義上是用戶可見的工具而不是庫,亦或是我不喜歡 做這樣的東西因為別人也同樣不喜歡所以才會有這樣的空白讓我來填補。

然后,我做了最后一個項目,Sliver Lining。它是devops革命的初期出現的,它是考慮web應用的通用容器會是什么樣子的一個嘗試。它在某種意義上比virtualenv和pip 更進一步,但目標是構建一個完整的產品而不是一組折衷的工具。沒有人關系,我只是有一點關心,是因為它實現了我很久以來想要實現的想法,因為是為了web 應用開發更加敏捷和可靠,它能去掉那些我比喜歡做的任務或將其自動化。我沿著路走下去進行代碼和技術設計,但我由于很單調乏味而沒有堅持下去。

然后當我發現Python里面沒有什么能讓我興奮的東西了。Python非常棒,我的興趣不是去追逐流行的東西。但我一直想象我能創造出好的工具, 并且使用這些工具來構建出我想要做的產品——那個產品具體是什么樣子,我也不知道,但是利用好的工具我想我能更快更容易發現它。

Ian Bicking:跟 Python 說再見

有時候當我對一個想法很興奮的時候,我就會停下來。我需要冷靜一下。試著好好想想這個想法,因為我知道如果我直接推進這個想法,我會把事情搞亂并且 非常失望。不,我不知道這是不是真的:可能是我不想去面對,在那個時候,那個想法并不是像我想的那么酷,圍繞這個想法還需要更多成熟的考慮,因為我擔心把 事情搞亂,或者把事情搞砸,所以我停止開發工具了。

我一直把我的注意力集中于Web,,盡管我在服務器端陷入困境。我跳過本地GUI,成為一名用戶。但是缺少考慮的純數據處理讓人感到很乏味。我曾經 是,一個自由軟件和Web的信徒。我相信在Web里不一定全是開源,開源也不是為了Web。然后我寫下來,我感覺我不關心開源 ,但那不是因為Web。

當我覺得Python不再與Web相關,至少不與讓我感興趣的那部分Web相關。那些我構建的工具看起來也就沒了意義,這些工具不能實現我的抱負。 數據庫后端的網站,或者基于動態HTTP的web應用,模版和部署,任何你稱為REST的東西——它們看起來都不是未來,不管這些模糊的東西是怎樣,我都 不會再去研究它們了。

這并不是一個真正的革命,我回顧構建這些工具的過程。如果甚至你幾年前問我我也是這個看法,這并非我的獨特觀點,我覺得這是非常明白的,難道我們沒發現世界發展的方向?因此我轉向了javascript去研究DOM。

在這之前我加入了Mozilla。Mozilla從某種程度上引領了這種變革(javascript),誘惑我離開Python。事實上我如果不再Mozilla做Python后端開發的話,我還能更加輕松的工作。

Ian Bicking:跟 Python 說再見

在過渡的最后幾年非常艱難。使用Python做服務端的開發,我很擅長,能夠勝任這樣的工作。我能很自信的構建一個想法并且考慮到所有的設計問題。我很受尊敬并且我的建議能得到采納。我已經投入了10000小時,我已經精通了。

而轉移到javascript后以前的優勢都不存在了。如果我做web開發,并且身邊有一些也在做相同的轉變的人的話,完成這種轉變可能會簡單一些。但Mozilla不是那樣的環境。但也不錯了,我感覺到自信可能是因為沒有人來糾正我。

很奇怪看到人們談論一個程序員如何幾天或一個月的時間里學一些新的東西。程序員覺得所有的只是都是可轉移的。我不知道怎么解釋它,我情愿認為這些人從來不知道什么是真正的精通。我不認為會需要花另外10000小時來精通一門新的語言,但至少需要花幾千小時、幾年的辛苦工作。我現在感覺我已經接近了。

可能這是我對于精通的觀點。決定做什么事情就要把它做好。你必須去解決正確的問題。你需要用好的方法來解決它。你需要知道什么時候要修訂你的方案, 并且理解修訂帶來的限制。你需要有宏觀和微觀的直覺。你需要對編程的所有細節掌握的足夠好,不會被簡單的東西淹沒,那么你才有精力花在主要的部分。從 Python到Javascript的轉變并不大,這兩種語言的看起來很相似。瀏覽器已經是我關注的環境了。但是在新的環境里重建直覺還是花了些時間。

我不會回到我原來在的位置了,因為Javascript不是Python。如果有我沒發現的Javascript社區,或者不是一個單獨的實體。社 區創造Javascript和Python社區創造Python是完全不同的,Javascript是為因特網而生的,但Python是在因特網上創造出 來的。我很想念Python社區,你們都是好人。

我原來有的一些關于語言派別的想法已經不存在了,我不會偽裝這是我最愛的語言。這不應該與對語言不感興趣相混淆。我仍然為“針對工作使用正確的工具”而煩惱,平淡的真理不要太多的討論和投入到軟件工程里的任務和選擇,用冷靜的技術宿命論來代替。

我想我對平臺的關注程度超過了語言,而瀏覽器看起來是最有意思的平臺,不是因為它很新奇,而是因為它非常實在,并且與任何東西都能關聯起來。瀏覽器 不再是服務器的仆人,我傾向于把瀏覽器看作是一個獨立的代理,連接服務而不是服務器。顯然那不是很多運行的網站的情況,但我把這種模型看作是未來,這是一 個更好的理解未來架構的觀點。

我依然會向著這個目標前進。我不想再為我從未設法去做的事情構建工具。現在我想我處在協同合作的環境下,首先是利用TogetherJS,現在我想 要嘗試一個更大的實驗。我覺得已經有了執行這些項目的能力,編碼只是推進大的遠景里的一小部分。我仍然要學很多東西,如何在可行性與用戶價值之間平衡,如 何在戰略和設計上進行妥協。協作本身就是一門專業的技術。我學到了很多,也可以做事情,但我還沒有在這個領域里積累足夠多。我擔心我沒有足夠的空間來學這 些東西,時間在我學習的過程中都不夠用了。

那么我現在就是這樣了。不再是一個語言的信徒,不清楚我參與的那些社區,我對自己更加不確定了。那么我如何來評價我自己?盡管我發現我的技術立足點漫無目的。不過也很難說再見。那么我會說,Pythonistas,等到下次再見,可能我會在這看到你。

原文鏈接: Ian Bicking   翻譯: 伯樂在線 - 賤圣OMG
譯文鏈接: http://blog.jobbole.com/63037/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!