@
ant_sz @
ant_sz @
skywinger @
loading 用过C++开发qt和wx,就知道有多痛苦了。Python的优点不在于网络或者是什么特别的方面。而是在于它作为原型语言的优势,这点目前只有java能与之媲美。但是java信奉的是自上而下的类型模型(什么东西都是object,然后继承、实现下来),而Python具有duck type的特性,所以在大量面向对象开发的过程中,Python的继承层次非常浅,而且内置了和Ruby的mixins相当的多重继承特性,抽象层次高非常多。
我从95年开始搞C++开发,到05年全线换成Python,倒不是因为我觉得Python能做比C++更多的事情,而是因为用它开发实在高效(不是它运行高效),用来思考复杂的问题非常容易。
另外拿qt和python比是不恰当的,当然我知道qt和wx包含完整的、各种功能的类型、操作等等。不过C++致命的问题就是没有很好的统一性,打个比方说:我接触过n个C++库,就有n中表示字符串的类型。std::string、Ogre::String(typedef std::string)、CEGUI::String、QString、wxString等等。
之前用wxWidgets做了两个C++项目,还有wxPython写了一个完整的编辑器项目。因为太熟悉了,所以我知道wxPython本身的复杂性。前阵子用Tkinter开发了几个项目,让我有醍醐灌顶的感觉:这才是我需要的GUI库。我原来以为所谓的RAD需要有一个GUI Builder之类的东西。Tkinter让我用区区几行代码搞定任何复杂的问题。
当然我是说在Windows上的Tkinter,在我的OS X上,Tkinter就没正常支持过中文输入。前阵子自己写了个wxTkinter,最后放弃这个项目,原因很简单:我不想让开发GUI的时间大于我做其他工作的时间。