散文说python半篇——景观三元论与盖茨比的对话
今天,
天氣晴朗,風和日麗;
我事實上在說謊……
愛說謊事實上是我的天性
上個禮拜四我就用景觀三元論說了非常多謊話。然后一頭大象自己上吊了。
了不起的大象啊,蓋茨比也要從墳墓里爬出來了吧,
陳年舊事,
紫露凝煙,
沒有了蓋茨比的墳墓依舊是遺址公園。景觀三元論如是說。
景觀三元論問:蓋茨比,你為何不用C++寫代碼?非要用ruby或者python這樣的執行非常慢的語言呢?
蓋茨比說:
老兄,你要求快,干脆直接用匯編語言去寫吧。
舉個樣例吧。
你用C++寫一個實現某個功能的程序,這個程序的執行速度確實非常快。僅僅要0.0001s就可以,
而我用python或者ruby寫相同一個程序,它的執行速度確實慢非常多。須要0.01s,確實慢了非常多非常多倍。
可是,
你寫那段C++的程序。你花了一天的時間,
而我用python或者ruby寫這段相同的代碼,僅僅要10分鐘,
而0.01s已經綽綽有余地滿足了我的功能需求,它和0.0001s對我來說都是一眨眼的功夫。
所以人生苦短,我用python/ruby
接下來我就說python了
由于是散文。所以不會那么系統地說。
主要就點到為止地說說怎樣像一個pythonic一樣去寫python
在曾經寫排序代碼的循環體內。常常會須要單獨搞個中間變量,然后z=a,a=b,b=z
如今一句話優雅的搞定了,如上。
列表推導式式這類語法糖可謂兇器啊,不僅簡單優雅。并且威力非常大。(相同適用于元組、集合、字典)
請不要適用type(1.3)去看變量類型,這樣不專業,用isinstance吧,isinstance(1.3, float),并且isinstance還能夠接受類型的元組從而適用多個類型。非常優雅吧。
帶關鍵詞的格式化。
有點模板引擎的味道。
python對Haskell這樣的有趣的函數式編程語言的繼承借鑒還是非常多的,在此就點到為止地提一下filter(),reduce(),map(),lambda...由于是散文,就不說細了。
。。。
寫代碼的習慣。排版上。空格上,注意一些,也非常重要。雖說推薦似乎名叫pep8規則,可是我認為基本上注意到一些這些細節就夠了
看過一排how to use python as a pythonic,好像叫這個名字的網頁。
事實上我認為最實用的就是注意括號里參數的空格,以及等于號前后加個空格,看起來舒服清爽點
注意就可以
在此推薦一些關于python的好的參考站點:
https://pyzh.readthedocs.org/en/latest/
http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html
不推薦多,就推薦者兩個,一個中文的,一個英文的。
至于面向科學計算的,建議學numpy和scipy。忘了還推薦眼下僅僅有4個api的jerkpy,博客中的還有一篇文章介紹了。
做圖像識別 建議opencv。骨骼識別openNI
對于網絡編程,建議用request代替urllib和urllib2
異步的twisted我還沒看。
網絡框架嘛。python的網絡框架還是有非常多的,比較白話開放。從plone、django(這個詞的d不發音,讀“江go”,可是在中國。入鄉隨俗也沒問題)、flask、bottle、tornado
基本上都接觸過。可是我終于選定了優雅的異步框架tornado
說說吧
django盡管非常多人用,也非常全,非常快,可是太重、耦合性相對較高。不適合做大型站點,用來給普通公司做私活能夠;
flask是個比較新的框架,也非常輕,非常新。社區也比較團結新銳,我本來也用這個,可是后來還是決定不用它,原因是綜合的,一個是自身喜好吧,我事實上挺喜歡flask的,可是還是似乎認為他位于一個不輕不重的位置。盡管社區非常不錯,是牛B團隊開發的。可是感覺略微還是有那么一點亂,有種逐步從webpy的量級向django發展的趨勢。
web.py是個不可逾越的輕量級鼻祖,盡管創始人掛了。可是這個經典的框架很經典。只是似乎又太輕了,以及缺乏創始人維護。
做大型站點就應該松耦合,用輕量級的框架來干事,用密斯凡德羅的話。少即是多。以小打大。
bottle可謂一個玩具,上手非常快,非常適合給小學生玩。也算經典吧。
tornado我最推崇。很優雅的一個基于web.py發展而來的異步框架,即使不用他的異步,他也是一個值得推崇的東東。不不過由于其能承受高并發、異步、安全cookie、防止xsrf攻擊等。而更是由于這個框架的架構高明,優雅。
在此之前。我實踐了ruby on rails,django, flask, web.py, nodejs ,盡管這些都是杰出的框架,可是自從我遇到了tornado,我已經決定tornado是我的歸宿。
一把利器啊。經過大半年的實踐。我總結到centos+nginx+tornado+memercached+nosql+mysql+python。為何沒人從一開始就告訴我這個,這樣就不用走彎路了,所以天才都不是憑爹的,而是拼哥的,我真羨慕我堂弟有我這樣一個哥哥。等他中考后就去教他這個,瞬間認為自己高中三年,大學四年,研究生兩年半真是糊里糊涂地走了好多彎路啊,被三元論這類。
。。
。事實上三元論還不錯。是一個不錯的思想。可是假設稱同濟景觀為中國最好的景觀學,那太不夠了。眼下中國根本沒有景觀學專業,回過頭。發現被騙了好多年啊。。
。
假設上天在給我一次機會,我會在高一后就退學,然后自行軟硬兼修外加學規劃設計。如今老了。。。。幸虧去年受到了松本行弘的思想的感染,讓我斷筋再續。盡管不用ruby了。可是這樣的思想已然扔不掉了。。
。。
曾經寫的都是技術博客,今天寫了一篇技術散文,
正所謂形散而神不散。松耦合。強內聚。我又說謊了,事實上想到什么寫什么吧,為所欲為。
。
。
python上手非常快,未來每一個人都必須會編程,而python和ruby是非常人性化的語言。所以會有大部分人都會python或者ruby的
python上手非常快,可是代碼質量以及把代碼寫得跟機器合二為一還是須要境地的,要充分《深入了解計算機系統》,事實上講簡單點。不說套話,最基礎的一個步驟就是充分利用cpu的運算能力,注意內存,異步的核心我原以為僅僅是釋放cpu資源,后來發現非堵塞不僅僅是釋放cpu,也同一時候釋放網絡資源,說的比較土,原因非常easy,沒學過計算機系統那門課。那本書也沒看完。。
。
。
只是,換句話說點到為止,慢慢看完那本書足以,匯編語言真的不是必需學了,compilers這樣的都是有追求的碼農去學的,從一個景觀設計師的角度來說怎樣像松本所說的那樣從人的角度出發,怎樣讓人更舒服地編碼。——給碼農捶背,讓碼農更舒服地編碼。這當讓是說笑。事實是前一段時間,從一個播客上聽了一個騰訊的產品經理說他們團隊的敏捷開發,本來看中了騰訊的產品經理的薪資高,可是還沒聽完那個產品經理的播客。我徹底失望了。打消了去騰訊的念頭了——他媽的。就是個工頭,當你與什么樣的人共事,則意味著未來的高度,我寧愿與一群無業游民共事也不愿與一群號稱敏捷開發的包工頭共事,工頭僅僅知道project,而不關心戰略。也不關心產品,更不關心怎樣碼農地死活與生活。松本行弘作為一個技術大牛的角度,他已經詮釋了怎樣讓程序猿更舒服地編程,而我,作為一名“未知方面”的“自封大牛”也將要詮釋怎樣讓程序猿更舒服地編碼“?谷歌一樣地舒服的環境,是物質基礎。可是真正牛B的方法是少寫代碼,不寫代碼。慎重需求提出,用心的架構設計,從產品設計層面就思考怎樣盡量少寫代碼。把時間花在精心設計一個api,讓這個api精到能夠考慮到后期的迭代開發。
從產品設計層面就考慮到代碼架構,從而花時間在畫“草圖”上,而不是直接拿著“cad來畫草圖”。盡管是景觀與建筑設計的經驗,可是這是通用的。
松本行弘,他讓程序猿更加舒服地編程。
弓長一葦,他讓程序猿更少乃至不用編程。
跳出圈圈看世界。無所謂你是碼農。還是建筑師。無所謂你是vc還是cto,無所謂你是教授還是學生,
那些都不重要。
重要的是生活。
生活乃天賦人權。
所謂名利乃身外之物,
無法舍棄追求的不是名利,
而是那種自我的成就感,
可是,我時常提醒朕,
生死由命
富貴在天
人之生,
乃天賦人權。
我并不是生來為了寫論文,
我生來也并不是為了寫代碼,
我生來也并不是為了做設計繪圖。
這些不是必須的,
這些是沒有必要的,
關鍵在于你是否有勇氣去選擇。
選擇在于每一個人的自己手中。
發現寫的太直白了,
不能這樣。
我應該寫的高深一點。
清晨,我撞死一輛卡車。
可惜這首我的成名詩,失傳了,可惜。。
。
我自己也忘了當年怎么寫的。
總結
以上是生活随笔為你收集整理的散文说python半篇——景观三元论与盖茨比的对话的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [清华集训2015 Day1]玛里苟斯-
- 下一篇: 标签体系应用及设计思路