我与python的故事

Python的历史大概从90年代初开始, 不过当时在中国知道这个名字的人我猜测可能很少。 而我知道这个名字的时候已经是2004年初了。当时我回国过年,年后去广州办事,偶一日因为等人无聊于是跑到天河的一间书店看书。我翻过的其中一本书是蔡学镛的<>,在比较靠后的某一章提到Python. 他的comment: 易学易用,功能强大,国外很多人使用.

当时我不免觉得奇怪, 依稀记得在我们所里看到过的几种语言中没发现这个名字。我们所是做数值计算的.主要用 Fortran(77), C/C++, TCL 还有一种说不出名字的脚本语言。 过几天,我回英国了,回去后我询问了一下同事, "你们听说过这种语言么?” 我抽样了5个人,其中只有一个知道,他是搞图像处理的对python的评价颇高。 不过当时我忙于论文的事情,到结束后没多久就回国了,“学一下python"这个念头自然很快消失了.

 

我回国的第一份工作是做单片机在汽车电子的应用, 应用领域主要是C51和Dos, 使用环境基本上和python不搭界. 05年上半年曾经看过一下 Learning in Python, 不过因为找不到什么可用的地方 看下去就没什么劲头。看了两章就算了.

到了下半年,事情有了一些转机,公司要开始搞些信息化的管理之类的事物,需要有某些人来处理此类流程和开发一些应用。

当时无人可选,经理于是把我调过去做这类事情 他给领导的理由是”此人以前学财务会计,研究生学过应数,应该逻辑思维

比较强,比那些搞电子的好些“。 领导居然也同意了。

 

我只有1个人,要做的事情很多,于是我想找一个能rapid-development的工具,至少能rapid-prototyping的冬冬。我评估了一下我会的语言 c/c++, java都不怎么符合这个要求。勉强符合的delphi却又提不起兴趣去用。 又一次,我想到了python。我在emule下了几本书.python in a nutshell, python in win32, programming python等。 因为我需要做的事情和其他win32下的应用有密切的交互性,扫了几眼python in win32后觉得这个东西应该就是我所寻找的.

 

不得不说 learning by doing是学习新语言的比较好的方式,我不到4天的时间把learning in python看完了,然后开始进行使用..... 

 

从06年到08年我离开的时候,我大致用python开发了3-4个应用包括一些比较复杂的生产控制的应用。

 

我个人对python的感受:

我觉得使用python进行开发是件很美好的事情。有一次我同学问我为什么使用这个语言。我回答是我看这个东西比较顺眼,而且我觉得在idle下面敲代码给我一种赏心悦目的感觉。 开源的那个eric说过"一种语言能缩短你思考和敲打键盘的时间间隔就是一门好的语言“ 我和他的感受一样 基本上可以做到和思维同步. 虽然我没怎么用过python的高级特性,很多时候我只是把它当作一种simplified c++来使用, 但是这已经缩短了很多很多时间.

 

python有足够多的库作为选择,而且作extension因为swig的存在也变得很直观。我使用的开发环境也远比用其他简单的多, 只有一个idle, 偶尔开pythonwin看it的com browser.  需要查函数,只需要在shell 打 import xxx, dir(xxx) 看看即可. 对比使用netbeans, vs2005的感受大是不同。

 

python不是pure OO language, 不过我也不是一个OO的fans, 我也不认为OO在任何时候都是解决问题的合理手段, dirty and lazy几乎是人的本性之一, 没有什么不好.

 

python的运行环境的宽度令我惊讶. 我写的生产运营系统需要在一台celeron 550, ram 128m win98下使用 在06年的时候,这种机器估计也只能卖个2,300。 任何.net java jvm based 的程序在这种机器运行和自虐无甚区别。真正能有用武之地的怕是delphi了. 不过令我意外的是 那套系统运行的很好,我目测估计大约比delphi写的慢25%左右。除了在计算产品配置这种较为极端的运算才会延迟. 这个事件一改我认为python十分慢的印象。 它是十分慢,不过不是非常慢.

 

python我抱怨的地方不多 一个是indention问题,在某些自作主张的编辑器里面的python代码会变得不可思议。正确理解和使用tab居然变成一件头等的大事.python的thread又是另外一个问题. GIL使multi-core 变得毫无用处。幸好 pyprocessing的出现某种程度alleviate了这种麻烦。

 

毫无疑问,我和python的故事仍然会继续下去,至少目前我看不出为什么要抛弃它的理由. 这是一种很有趣,很handy的语言。套用一句流行语 "very good very strong"

 

 

 

 

你可能感兴趣的:(python)