Py的缺点?!
提问
Zoom.Quiet zoom.quiet# gmail.com 发件人当地时间: 发送时间 14:24 (GMT+08:00)。发送地当前时间:下午5:03。 ✆ 主题: [PyCon2011China]后续思考: Py 有什么缺点?!
在昨天内部分享交流中,俺回顾了 PyCon2011China 中透露出的 Py 最新使用/发展和体验; 最后有同学问:
- Python 有什么缺点!?
直接HOLD 住了俺的思路...
- 是也乎!? - 世界上没有完美的语言 - Python 相比各种开发语言也有缺点,当然的! 可是,是什么呢?! - 没有 {} ? - 不支持多CPU ?
大家在学习使用过程中,对 Python 有什么失望的地方?! - 兼听则明 - 现在不满意的,就是我们努力的方向..
PS: - 俺现场憋出的回答是:
- - 由于 Py 历史上积累的好用模块太多,会导致开发人员更加懒惰,不思进取,不论什么都可以直接搜出可用的现成模块来!
zw g
zw g pekingmaster# gmail.com 发件人当地时间: 发送时间 14:55 (GMT+08:00)。发送地当前时间:下午5:04。 ✆
- 1)iOS, Android等移动设备的App开发目前感觉不给力 (不是指web的方式)
- 2)性能
- 3)多核?
- 4)GIL?
- 5)编译打包流程
Leo Jay
Leo Jay python.leojay# gmail.com 发件人当地时间: 发送时间 14:58 (GMT+08:00)。发送地当前时间:下午5:05。 ✆
我不同意说python没缺点。但我也不认为python3是一次大修。 在我看来python3最重要变化,一是print之类的语句变成了函数调用,二是默认使用unicode做字符串。 这能算是大修么?至少我个人认为是不算的。
从我的角度来说,python可以提高的地方,
- 一是运行速度,目前还远不能跟编译型语言比,
- 二是IDE,还没哪款python的IDE能达到intellij idea和eclipse对java的支持
- 三是多线程并发执行的支持
至于语言本身,我没感觉到有什么明显的缺点。
对于那些写代码用英文,写注释用英文,平时也不用处理非英文数据的人来说,转3的动力的确不强。
我的看法是,
- 1. 如果你手上已经有2的项目要维护,那就继续用2,不要做迁移。
- 2. 如果你要新做一个web项目,先去看看cherrypy能不能满足你的要求。如果可以的话,就用3,不行就用2
- 3. 如果你已经知道你要做什么,先去找找相关的库对3是否支持,如果不行,就用2
- 4. 其它情况,能用3就用3
总的来说就是能用3就用3,毕竟3是未来的方向,而且的确有相当一些细节上的改进 但如果不能用3的情况下,那就用2,不要勉强。
ubunoon
ubunoon netubu# gmail.com 发件人当地时间: 发送时间 15:43 (GMT+08:00)。发送地当前时间:下午5:07。 ✆
- 1、大部分使用的是CPython,运行速度与其他编译型语言相比,还是不够快速
- 2、万恶的GIL
- 3、嵌入到C比较麻烦。
- 4、框架太多
- 5、资料还是相对较少
- 6、IDE,很难找出一款好的IDE,来一统Python的天下(或者是桌面或者是web开发)
- 7、商业应用支持还是比较少 (这个才是重点)
8、google复杂问题的解决(就好像之前我发的PySide的问题),还是不够给力。
CJ
CJ jamchange# gmail.com 发件人当地时间: 发送时间 16:57 (GMT-08:00)。发送地当前时间:上午1:08。 ✆
Python的Object & Class 系统有逻辑上的问题
1. Object支持了eq方法,为什么还要实现ne方法?很基本的哲学道理,一个可推导的世界中,A==B为真,则A!=B一定为 假,ne方法大家都不会用,那就应该人Python中去掉,免得引起混乱
- 2. classobj与type这两个东西确实该去掉一个,鸡乎?蛋乎?(Python 3去掉了classobj)
- Python的字符串unicode,寄期望于Python 3
- Python的lambda只支持表达式,Python仍然区分表达式与语句,这点导致lambda里没了if(虽然你也可以找很多其它的理由来解释 lambda里的代码不应写得复杂),还有Python的closure
- Python函数的tail_call_optimize
- "".join 你懂的,Python有些库的方法命名有些奇怪,有些有下划线,有些没有下划线。有些类是全小写,有些类是Camel,Java这些方 面就很好。。。。历史遗留问题啊
- Python的文档????我看django文档时,只想着一句话:Read The Fucking Source Code!!!有些函数的文档我看半天还是没搞清楚倒底怎么个用法,一是函数参数没有类型说明,另一方面,我还是比较喜欢直接的example。(感觉Java的API文档也要比 Python的好很多喔,整洁不少)。
zhao shichen
shichen.zhao# gmail.com 发件人当地时间: 发送时间 18:10 (GMT+08:00)。发送地当前时间:下午6:54。 ✆
- 1.很多标准库很烂;而很多很好的库竟然不在标准库之中,比如chardet等等,而xml之类没用的东西反而有
2.lambda演算太弱:如果有类似(x,y)->这样的语法就更好了;python3竟然进一步的削弱了lambda演算的能力
- 3.字符串的join看起来太奇怪了
- 4.发展了自己的一套正则表达式,直接用pcre不好吗。而且这个库的使用我感觉不友好。
- 5.听说python的unix域socket的性能不佳,仅仅是听说,在我的简单测试中感觉unix域socket的速度和普通socket速度一样:应该快一倍才对。
- 6.没有标准的IPC函数,比如共享内存,消息队列等,这些东西很有用阿
- 7.引入了太多java里面的垃圾概念,就是那些面向对象的东西。导致本来很简单的东西搞得很复杂,最典型的例子是logging模块,这个模块太烂了
- 8.socke的函数支持不全,比如sendfile等等都没有支持
- 9.很不喜欢元类编程,把本来很简单的东西搞复杂,都是java里面的垃圾概念
在我的项目组中,基本上不准编写类,只允许编写函数,目的就是为了方便集成和控制代码;
象很多java项目比如eclipse一样搞得又大又臭是绝对没法接受的
对于 pypy
- Leo Jay python.leojay# gmail.com
发件人当地时间: 发送时间 15:12 (GMT+08:00)。发送地当前时间:下午5:05。 ✆ 回复: [email protected]
- ~zw g pekingmaster# gmail.com
- 大家对Py3都是一边倒说好呀。但是,有牛人好像对Py3很有意见呢,这又怎么说?
- ~ Leo Jay python.leojay# gmail.com
- 我看还早着呢。对CPython的第三方库支持不好是硬伤。pypy之于python就像mono之于.net,openjdk之于java,大家都说他们好,但都叫好不叫座,真正用的时候,你总是时不时会发现有那么一些地方跟原版兼容性有问题
反馈
创建 by -- ZoomQuiet [2011-12-21 09:09:06]