2012年1月7日星期六

用Python重写我的pac-maker项目

原文链接http://genghis-yang.tk/?p=98

昨天用了一整天时间把Google上托管的pac-maker做了个更新,说来惭愧这才是我第二次更新它。(不知道它是什么?可以翻看我的《代理自动配置脚本——PAC文件》)不过这次更新得比较彻底,从1.1直接到2.0版本。为什么没有1.2、1.3……因为我重写了代码,这次完全用Python构建,完全不一样的体验。

这也是我第一次用Python写代码,手生得很,写了一上午才搞定。不过考虑到自己才学Python不到一周,连个Hello World都没写过,也就飘飘然了。代码很短,加上废话不到50行,这让我不得不佩服Python的高效,难怪Thinking in系列的作者Bruce Eckel都夸赞说,没有一种语言比得上Python使他的工作效率如此之高。看看版本1用C++写的代码那叫一个长,光写代码,调通,就花了快一天。再说2.0版还加入了自动联网获取所需资源的功能,而这一功能要是用C++来写又不知道要写多少行,也不知道要花费多少时间。而Python的标准库中就包含了我这程序中要用到的方方面面:获取网页页面的urllib库、正则表达式的re库、还有各种方便的字符串操作。得益于这些内建的库,真个两三行Python就顶得上C++写一屏。

之前自己对各种解释性的语言很是不屑,认为C/C++才是编程王道,最让我诟病的就是那些语言孱弱的执行效率。不过随着开始写博客,开始使用一些JavaScript和PHP,再后来看到一些别人写的Python程序,最后自己尝试,我不得不说C/C++的编程效率确实很低。上上个月C++11新标准也正式公布,这是C++03之后8年来首次更新标准,看来C++也注意到新生代编程语言对自己的挑战了。毕竟曾经的执行效率优势在如今的4核、8核处理器上已经体现的比较少了,编程也已经平民化,像我这种非计算机专业的也能随便开个项目了。写了这第一个Python程序我也尝到了Python的甜头,计划着用GAE弄个在线小游戏玩玩,这就是后话了。

最后再给我的pac-maker做做广告,这个项目面向无法上外国网的教育网用户,提供自动代理切换脚本pac文件,配合Wallproxy或GoAgent上外国网那是相当方便。欢迎教育网的朋友和其他感兴趣的朋友下载使用,期待批评指正。

pac-maker homepage http://code.google.com/p/pac-maker/


阅读全文...