這可能是開發者社區最成功的愚人節笑話
愚人節笑話很少有成真的,畢竟那只是一時娛樂而已。但同樣的話,對于開發者社區來說或許有例外。
據 Python官方維基 介紹,Python社區中有著優良的愚人節傳統,其中一個特別明顯的例子就是 PEP 0401 -- BDFL Retirement ,說的就是Python發明者Guido van Rossum決定讓出終生仁慈獨裁者(BDFL)的位置。
當然,上面這個愚人節笑話并不是我們要說的例外。本文的主角是Python Web開發微框架Flask。沒錯!Flask就是誕生于于作者Armin Ronacher六年前的一個愚人節笑話。
目前,Flask在Github網站上已經獲得近2萬個Star,已經躋身主流Python Web開發框架之列,我認為或許可以說是開發者社區最成功的愚人節笑話。
對于自己有開源項目的開發者來說,本文或許也能為你提供一些項目推廣方面的啟示。
Denied:Flask的“前身”
據 Armin在博客中的介紹 ,當時他注意到微框架開始流行,出現了很多類似web.py(Python)和camping(Ruby)的微框架。這些框架都沒有外部的依賴包,而且只有一個文件,似乎特別受大家歡迎。所以他決定自己也開發一個這樣的框架,娛樂一下。
因為目的只是作為愚人節笑話,所以他只是利用現有的技術,將Werkzeug、simplejson和Jinja2打包進了一個文件,并添加了一些膠水代碼。最終的產物就是一個名叫Denied的微框架。
為了讓這個笑話更加可信、看上去更真實,他請人錄制了一個視頻,上線了一個網站,還找了幾位知名Python開發者為這個框架背書。愚人節當天,Armin通過推ter發布了Denied。
開發者社區對此的反應出乎意料。Armin在4月3日總結此事時提到,視頻三天內被下載了1萬次,網站點擊量超過5萬。而且轉推數量遠遠超過之前自己的紀錄。
可惜,我沒有找到當時錄制的那個視頻。
Denied的成功有什么啟示?
據Armin Ronacher在2011年的PyCon的分享,他從那次愚人節笑話中學到了以下幾點:
- 沒人有時間去充分測試這個框架并閱讀代碼
- 營銷勝過質量
- 功能并不重要
- 不一定要是新東西
當然,這并不是要推薦你不去測試代碼;市場營銷和高質量代碼也并不沖突。
另外,在項目網站上提供一些小塊代碼段特別有作用。作者此前的Werkzeug提供的示例非常復雜,Jinja2甚至沒有相關代碼示例,必須要看文檔才能了解大致的情況。
宣傳項目時要大膽。很少有人會馬上去檢驗你的說法。
Flask誕生
開發者們對這個項目的極大興趣,促使Armin最終決定重新造輪子(reinventing the wheel),2010年4月6日在Github上發布了Flask。
他后來解釋了自己開發Flask的兩大原因:
- 靈活性更高,應用可能要求一些現有框架沒有的東西
- 可以自己掌握全局,快速解決遇到的問題
最終的框架使用起來非常簡單。用Flask開發的“Hello World”應用可能是下面這樣的:
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello World!' if __name__ == '__main__': app.run()
使用如此簡單,那么Flask今天的成功就不難解釋了。
參考資料
- http://lucumr.pocoo.org/2010/4/3/april-1st-post-mortem/
- http://lucumr.pocoo.org/2010/6/14/opening-the-flask/
- http://mitsuhiko.pocoo.org/flask-pycon-2011.pdf
- https://us.pycon.org/2011/blog/2011/02/10/pycon-2011-interview-armin-ronacher-opening-flask/
來自: http://www.codingpy.com/article/april-fools-joke-became-flask/