Differences between revisions 1 and 3 (spanning 2 versions)
Revision 1 as of 2011-12-21 09:09:08
Size: 5917
Editor: ZoomQuiet
Comment:
Revision 3 as of 2011-12-21 14:46:58
Size: 7369
Editor: ZoomQuiet
Comment:
Deletions are marked like this. Additions are marked like this.
Line 15: Line 15:
  Zoom.Quiet zoom.quiet@gmail.com   Zoom.Quiet zoom.quiet# gmail.com
Line 46: Line 46:
zw g pekingmaster@gmail.com zw g pekingmaster# gmail.com
Line 58: Line 58:
Leo Jay python.leojay@gmail.com Leo Jay python.leojay# gmail.com
Line 87: Line 87:
 ubunoon netubu@gmail.com  ubunoon netubu# gmail.com
Line 102: Line 102:
CJ jamchange@gmail.com CJ jamchange# gmail.com
Line 116: Line 116:
=== 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一样搞得又大又臭是绝对没法接受的
Line 119: Line 137:
  Leo Jay python.leojay@gmail.com   Leo Jay python.leojay# gmail.com
Line 123: Line 141:
 * ~zw g pekingmaster@gmail.com  * ~zw g pekingmaster# gmail.com
Line 126: Line 144:
 * ~ Leo Jay python.leojay@gmail.com  * ~ Leo Jay python.leojay# gmail.com

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
  • ~ Leo Jay python.leojay# gmail.com
    • 我看还早着呢。对CPython的第三方库支持不好是硬伤。pypy之于python就像mono之于.net,openjdk之于java,大家都说他们好,但都叫好不叫座,真正用的时候,你总是时不时会发现有那么一些地方跟原版兼容性有问题


反馈

创建 by -- ZoomQuiet [2011-12-21 09:09:06]

MiscItems/2011-12-21 (last edited 2011-12-22 07:33:54 by ZoomQuiet)