主题:【原创】Python简介 -- 请尽量
语句的功能挺强大,学起来很快就可以入门了。很快就可以写出功能丰富的程序。
变量也不需要定义就可以开始赋值了,有点随便。
这样可以使程序不会太长
这个也太慢了。
而且往往开发一些比较大的程序(当然暂时不能和JAVA写的大程序相比),Python应该已经成为轻量级程序的最佳选择了。
总的来讲,Python的跨平台做得不错,我暂时没有发现大的问题。Python调用数据库非常简单,有很多包可以选择。
Python的最大特点是开发效率,很多人宣称是JAVA的10倍,不过我的感觉要快2-3倍时没有问题的,几行代码就可以建立一套web service。
生物方面好象Perl用的还更多些。
战争尚未结束...
在科学计算领域最前沿的是粒子物理,现在很多项目开始使用Python。再以网格为例,中间件都有两套接口JAVA和Python。Perl的优点是已有的资源极其丰富,缺点是:
缺点
也正是因为Perl的灵活性和“过度”的冗余语法,也因此获得了write-only的“美誉”,因为许多Perl程序的代码令人难以阅读,实现相同功能的程序代码长度可以相差十倍百倍。但Perl同样可以将代码书写得像Python等语言一样优雅。
所以Perl一般人只用来写脚本,Python真正被用来写程序。
Python在科学计算方面应用还不错, numpy、scipy、ipython、matplotlib等几个关系较为紧密的项目是Python在科学计算方面的代表性项目了,分别对应数值计算、一些科研领域的相关算法、交互式接口、图像输出部分。除此之外,文本方面有nltk项目,机器学习方面有orange,pyml项目,生物计算有biopython项目等。其它领域,由于自己完全不了解,就不清楚具体情况了。
另外也有相当部分相关的书籍,如。
Numerical Methods in Engineering with Python
Python Scripting for Computational Science(大约一年一版的速度,现在是第三版)
Programming Collective Intelligence
Essential Python for Corpus Linguistics
Python for Bioinformatics
Bioinformatics Programming in Python: A Practical Course for Beginners
Python还谈不上特别流行,例如用户数量未必比perl多,在生物信息学方面bioperl也先于biopython出现。感觉Python在科学计算方面发展状况还不错,看好python,呵呵。
诡异,一些人可能觉得难学点,python就比较方便通用了。
另外,其实我比较奇怪的是,在 文明 这个游戏里,civ4也用了python,很是让我奇怪了一下。
在scripts里是非常强的,一些cluster系统的安装界面大概是拿它写的,例如OSCAR。
在Bioinformatics/Computational Biology方面,虽然perl用的人很多,那是历史的原因,但是由于大家越来越关心网络和界面(包括一些3D),python也越来用的越多,虽然那个画Graph的玩意儿做出来的复杂Graph不是那么好看。
matlab和python各有所长,都有生存的空间吧。
Python方面有来说:免费,没有充分资金或者想先尝试一下想法的时候比较合适,当然在国内可能这个优势意义不大;开源,编程能力较强的人可以在遇到问题时直接查看源代码查找原因,当然这一点大多数也不见得能用上;协议友好,用python写的软件可以用开源协议,也可以不开放源码,作为商业软件出售,并且把python打包进来也是可以的,当然这一点对于不准备放出来源代码或者可执行程序的人来说也不太重要。
但是还是有一些相对Matlab比较明显的特点的:安装包体积小,跨平台好,例如相当部分人是用windows或者苹果机作为桌面,有linux作为实用机器,用桌面写程序,写好以后放到linux机器上面作为正式应用场合,matlab也能做到这点,毕竟体积较大,license问题等,还是稍显复杂一点了;语言本身的特点,例如做算法实现或者数据处理,python实现起来还是很方便的,因此在原型系统快速开发,算法验证,科研等方面较有优势;社区友好,如果英语表达能力较好的话,比较方便参与交流,以前试着提了几个蹩脚英文问题,很快就得到有用的回复,好多还是写相应模块的作者。
当然Matlab也有优势,例如商业化推广的相当不错,很丰富的第三方组件,矩阵运算强大等等……。俺对matlab了解实在有限,不敢多言了,应该还是有其它优势的了。
选择合适自己的就好,呵呵。
几年前看到报道时候,有这么一个说法,就是Python可以让用户方便的个性化游戏,有些涉及大量运算的部分适合用c/cpp实现,有些留给用户定制的地方,用python等脚本语言,方便用户自己动手吧。
我正在选择学习下一门主要语言,正在JAVA和PYTHON之间犹豫。这两门我都只会一点皮毛,我已经会不少的perl,比较能体会PYTHON的优点。
当然我知道目前PYTHON远远不能和JAVA相提并论,问题是这个趋势未来会不会转变?从直观来说,python加C是很多问题的一个好的解决方案。