作者:outlier
鏈接:https://www.zhihu.com/question/20128336/answer/14066704
來源:知乎
著作權歸作者所有,轉載請聯系作者獲得授權。
大量應用python的website我知道的有instagr.am(django),reddit(pylons),quora(pylons),dropbox,friendfeed(tornado),當然還有豆瓣.
目前知道的還真沒有比較成功的電商采用python,我覺得原因如下:
1.現在的電商都是N年前開發的,當時的python比現在更小眾.他們沒注意到python.像京東的.net,都是一些歷史遺留問題.
2.電商的團隊,通常擅長的是運營和市場方面,很少有電商團隊里面有geek,geek也很難融入到電商的那種氛圍中去,對于國內的電商團隊,他們不大關注技術層面的問題.而國內玩python的大多是geek.
3.淘寶/阿里系的示范作用,阿里系用java構建的web很成功.很多電商團隊對于技術選型很保守,所以通常就選擇了java的方案.
然后談python做web的優缺點:
先說缺點,
跟php和java相比,最大的問題還是太小眾了,你招不到合適的開發者;
另外就是VM性能太差,跟JVM完全不是一個檔次;
還有就是多核多線程的問題,python的GIL真的很爛.
還有就是類型檢查,現在我寫python遇到最多的error就是類型錯誤了.
優點:
代碼量少,開發效率高.
入門快.web框架多,簡單易學.
有wsgi,可以各種折騰app server.
社區環境好,有各種開源解決方案.
既然提到 VM 性能差,有什么好的解決辦法?
0贊5 年前回復贊踩舉報
拼寫錯誤那里有誤,無論是IDE還是vim插件,糾正語法錯誤都是基礎功能
至于VM性能,大多數優化良好的網站的瓶頸都在數據庫性能上,實在是遇到語言性能瓶頸也可以通過用C/C++編寫模塊嵌入來解決
0贊5 年前回復贊踩舉報
outlier(作者)
雖然有pyflakes之類的,但還是有一些問題,你不部署是發現不了的.
你通過c/c++編寫模塊解決了,雖然這是python的特性,但我覺得但就python這個語言來說,他的VM性能的確有缺陷,就好像我說一輛車動力差,你非說這車擴展性好,你換個發動機就好了....
0贊5 年前回復贊踩舉報
outlier(作者)
@狼大人,jython是個解決方案,這也是python的優勢,社區的支持太多了
0贊5 年前回復贊踩舉報
你說的其他問題其他語言也沒辦法在開發階段解決吧。而且python工程的部署本身就不復雜,很多框架都附帶測試功能,這不能算是一個問題
就問題來說,他是就python開發整體而言,為什么不能引入其他性能良好接口方便規范的組件?這本來就是python作為'膠水'語言開發便捷之處
0贊5 年前回復贊踩舉報
說實在不大看好jython,ironpython的發展,pypy才是未來的希望吧
0贊5 年前回復贊踩舉報
outlier(作者)
就說一個問題,python的vm性能怎么樣,別找借口
0贊5 年前回復贊踩舉報
從來沒有說python的vm性能很好,但這不是用python作web開發的缺點。只是反駁這一點,你干嘛一直盯著vm不放。
0贊5 年前回復贊踩舉報
outlier(作者)
python的vm性能在做web應用的時候的確是個很大的缺點,比如很多人在請求一個動態生成的大文件的時候,你就會發現內存被使用過多,而由于VM的效率問題,導致請求關閉的時候內存沒有被及時回收,最后造成大量內存被占用,swap過大.極大的影響web性能.