接触python是件很意外的事。
最开始是玩symbian手机软件,后来接触了python for s60 ,看了米饭的入门教程,几天之后自己试着写了个文本编辑的软件,包括一些常用功能,例如新建文件夹、删除文件、重命名、替换等,并且利用自己掌握的非常有限的技术实现了界面操作。在xp上装了SDK 调试,然后拉到手机上,太神奇了,还真的跑起来了…
米饭的教程写得很不错,浅显易懂。然而他的教程却有个致命的缺陷:只教实现,不讲原理,就连语法都很少讲。这样导致的结果是这些入门教程只能让你入门而已,再深入就不行了。于是我决定大概看一下python,再看看pys60,因为后者很多都是从python过来的。因为有c/c++的基础,花了一周时间看了这本书的所有基础篇及部分高级篇内容。
拿python和c/c++ 比较一番,发现python确实在编写代码效率上要高很多,在处理一些小问题的时候显得非常得心应手。然而它也不是万能的,已进入python,它就教给你“一切类型皆对象”,可以想象,它在用简洁的语句处理数据的同时要比c/c++多付出多少时间和空间的代价。于是扩展出现了。
扩展的加入,解决了python的几个问题。首先是添加了额外的非python功能,这个就不说了。其次很好地解决了性能瓶颈的问题,使效率得到了提升。因为python这门解释性语言是在运行时动态地翻译代码,导致其运行速度比编译型语言慢,把瓶颈部分在扩展中实现,将会达到立竿见影的效果,同时使在开发过程中代码的编写效率和运行效率得到了平衡。最后是实现技术隐藏。大家知道脚本语言执行的是源代码,从保密性方面来说这是脚本语言的一个缺陷。虽然可以讲.Py文件预编译为.pyc文件,但也难逃反向工程的命运。折中的办法是将关键算法的代码用扩展来实现,这样发布二进制文件就可以了,相对不易被反向工程出来。
粗略看了一下Python,再转过头来看pys60,发现教程真不多(我指的是中文的),只能上官方网站看,可那都是英文的呀,这可要了我的亲命了。现在终于切身体会了前辈的教诲,稍微新一点的技术文章多数是英文的,英文学不好,怎么学习! 血淋淋的教训呀….