作者: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性能.