【IT168 专稿】本文介绍了Python的历史,总结了Python的强大之处和不足并且指出了与其他脚本语言相比,Python的优势所在。
今年5月31日,Google开发者日在北京举行。作为Python发明人的Guido Van Rossum,就Python语言做了主题演讲。演讲现场,来自CSDN的报道称“引来现场观众最热烈持久的掌声”。
那么Guido是何许人也?Python又为何物呢?
1. Guido简介
Python创始人,原居荷兰,1995年移居美国,2005年加入Google。
2. 为什么叫Python?
说来很有趣,选用Python这个名字,仅仅是因为Guido很喜欢一部叫做《Monty Python飞行马戏团》的肥皂剧。
3. Python是什么?
是一门可以被应用到很多领域、功能强大、面向对象、跨平台的动态编程语言。1990年至今,Python经过17年的发展,已经成为最流行的编程语言之一。在Google,Python语言更是被广泛应用,想在Google工作,Python语言似乎成了一个基本要求。
目前,Python的最新版本是2.5.1(http://www.python.org/download/)。
在7月份的编程语言受欢迎程度排名中(http://www.tiobe.com/tpci.htm),Python名列第八。
图1 7月份的编程语言受欢迎程度排名
Python何以有这么大的魅力,受到如此的追捧?笔者结合自己的使用经验,认为Python的强大,主要体现在以下几个方面:
一、 简单易学
Python世界非常强调“简单”二字,一个代码风格良好的Python程序,阅读起来,感觉就像是在阅读一段英文。Python的这种伪代码本质,使得你可以更关注如何解决实际问题,而不是关注语言本身。
Python的语法也相当简单,并且内置了很多高级数据结构。
Python的简单易学,很适合作为入门语言。目前,包括麻省理工学院在内的国外很多高校,都已选用Python作为教学语言。
二、 代码量小
实现同样的功能,Python与Java、C#这样的“大个头”比起来,明显简约很多。
例如,打印出一个文本文件中的所有内容,用Python只需要一句:
print file('love.txt').read()
而用C#实现呢?
不考虑代码行数,单就代码可读性而言,Python也胜出很多。using System;
using System.IO;
using System.Text;
![]()
class OpenFile
...{
public static void Main()
...{
try
...{
using (StreamReader sr = new StreamReader("love.txt",Encoding.Default))
...{
String line;
while ((line = sr.ReadLine()) != null)
...{
Console.WriteLine(line);
}
}
}
catch (Exception e)
...{
Console.WriteLine("The file could not be read: ");
Console.WriteLine(e.Message);
}
finally
...{
Console.ReadKey();
}
}
}
三、 丰富的API库
如果你仅仅认为用Python只能写写“Hello World”,那你就大错特错了。
Python可以被应用到网络开发、GUI开发、图形开发、Web开发、游戏开发、手机开发、数据库开发等众多领域。
网络开发方面,Python提供了大量可用的网络编程模块,涉及到Socket、EMail、FTP等等;众所周知的豆瓣网http://www.douban.com/),就是使用了专门用于Python的网络开发框架——Twisted;此外,Python还支持Jabber等等。
GUI开发方面,既有Python标准GUI库——TKinter,又有很多强大的第三方GUI库,例如wxPython。
Web开发方面,Python更显强大。应用服务器,有zope;CMS系统,有plone(基于zope)。国内,润普科技(http://zopen.cn/),就是做基于plone应用的;此外,还有django——一个可以和RoR相媲美的快速web开发框架、Pylons等等。
游戏开发方面,Python也有举足轻重的地位。很多网络游戏脚本,例如账号注册系统、物品交换系统、场地转换系统和攻击防御系统,都是用Python写的,与C++相比,Python更加轻便。
四、 安装容易
上面提到了很多Python的第三方开发包,如果你是一个Java程序员,或许会对第三方开发包颇感头感,一是下载安装问题,二是开发包版本问题。但是在Python里,你不需要再担心这样的问题。
以笔者做Pylons应用的经验,例如,要安装Pylons,你只需要:
1. 下载ez_setup.py(http://peak.telecommunity.com/dist/ez_setup.py)
2. 运行 python ez_setup.py Pylons
就这么简单!又比如,如果你希望使用SQLObject做数据持久化工作,如何安装SQLObject呢?更简单,只需要运行:easy_install SQLObject。
Python会根据这个命令,通过网络下载最合适的开发包并自动安装。
五、 多平台结合
Python也被称为“胶水语言”,可以方便地调用其他语言库。例如前面提到的GUI库wxPython,它的前身就是用C++实现的wxWidgets。可以这么说,其他语言有的,Python都可以有,并且可以很方便地有!
目前,Java和.NET平台也都实现了各自的Python版本,前者有Jython,后者有IronPython。两大主流平台都选择了Python,从这个侧面,可以看出Python的前景广阔。
除此之外,与其他脚本语言相比,Python又有什么样的优势呢?
1. 与Bash相比,语法简单、学习曲线相对平坦、API库更加丰富;
2. 与Perl相比,语法简单、代码可读性好、学习曲线相对平坦;
3. 与Ruby相比,语法简单、代码可读性好、文档多、性能佳(可参见
http://blog.csdn.net/Rails/archive/2006/09/17/1232993.aspx)。
当然,Python也不是功能较多的。
Python主要有以下不足:
1. 与编译型语言相比,作为解释型语言,Python的性能比较低。
2. 很多应用还得依赖于其他语言模块,更适合做快速原型。
3. 多线程支持不够好。
一些常用的Python IDE
1. IDLE,Python自带的IDE
2. ActivePython
(http://www.activestate.com/store/productdetail.aspx?prdGUID=b08b04e0-6872-4d9d-a722-7a0c2dea2758)
3. PythonWin(https://sourceforge.net/projects/pywin32/)
4. PyDev,Eclipse插件,更适合于Java程序员(http://pydev.sourceforge.net/)
近几年,Python在国内的发展也很快。
CPUG(中国Python用户组)经常组织一些Python的活动;啄木鸟社区(http://wiki.woodpecker.org.cn/moin/)上也有很多Python的开源项目。
最后,以《蟒禅》(Zen of Python)作为结尾:
优美胜过丑陋,明确胜过含蓄
简单胜过复杂,复杂胜过难懂
扁平胜过嵌套,稀疏胜过密集
易读亦有价
尽管实用会击败纯洁,特例也不能特殊到打破规则
除非明确地使其沉默,错误永远不应默默地溜掉
面对着不确定,要拒绝猜测的诱惑
应该有一个,宁肯只有一个明显的实现方法
也许这个方法开始不是很明显,除非你是荷兰人
尽管不做通常好过立刻
