IDE, 全称是Integrated Development Environment,翻译过来就是集成开发环境。Python的开发从2010年5月算起,不知不觉中,到如今已是第七个年头。数据库
这六年里,舍得最经常使用的IDE是Eric6(一开始是5.x版本),也试用过圈内闻名的PyCharm、WingIDE和Eclipse(+PyDev插件),算是有些心得。今天,着重对Eric6和PyCharm 2016.3做一下简单的评测。vim
颜值浏览器
Eric6是基于PyQt开发的,程序运行甚至只用一个BAT文件来调用,界面相对而言略丑。PyCharm基于Java开发,自带的主题很漂亮,风格比较统一。在颜值这一点上,无疑是PyCharm胜出。编辑器
顺带提一下WingIDE,虽然它也带了不少款主题,但整个窗口中有些部位是不受主题控制的。举个栗子,当你选择深色的主题时,窗口左下角每每会有一块白色的控件,忒刺眼。ide
速度和内存开销工具
从启动到打开一个项目,舍得掐着秒表测试了这几款IDE,数据以下:测试
内存开销上,PyCharm是大户,动辄就是吃掉你300-400MB的内存。机子内存小的童鞋要小心了!字体
UI和资源编译插件
开发过程当中不免要对UI和资源文件进行调整,因此IDE中天然须要将这两项的编译工做集成进来。翻译
Eric6是原生支持UI和资源文件编译的,它的开发者早就想到了咱们须要这项功能。
PyCharm做为一个专业的Python IDE,在这方面无疑略显不足。要实现UI和资源编译,你必须手工在外部工具设置中添加它们(具体操做请本身去问度娘),虽然设置好以后和Eric6比也没啥区别,但老是开发者欠考虑。
不过PyCharm这个外部工具的设计仍是值得赞扬的,你能够直接把打包命令(我一般用cx_freeze)直接整合进去,这样就方便多了。
智能缩进
在Python的语法中,缩进是很是重要的一项。开发过程当中,缩进若能更智能化一点,天然写代码的速度也会快一些。
在这方面,作得最优秀的是Eric6。它的牛x之处在于,不管你的光标键在哪一个位置,只要你按TAB键,程序就会根据上面的代码选择合适的缩进位置。
PyCharm亦有相似的设计。它的智能缩进操做英文名叫Emacs Indent(建议将快捷键TAB设置给它),国内的汉化莫名其妙地翻译成了“宏选项卡”,这必定是外行人干的。
但Emacs Indent在处理整块缩进的时候略显无力,当咱们要将整块代码往前移的时候,只能使用另外一项叫做“取消缩进内容”的操做,而Eric6只要一个TAB键就足够了。
字体缩放
虽然咱们能够在设置中给IDE的编辑器设一个特定的字号,但在实际开发中,仍是免不了要适当缩放字体。尤为是大屏幕,字体适当放大一些,眼睛不至于那么遭罪。
字体的缩放这两款IDE都有。只不过,Eric6是早已设置好快捷键的(用Ctrl+=/-,或Ctrl+滚轮),而在PyCharm中,你必须手动设置这个快捷键。
这一轮,算打成平手好了。
自动补空格
PEP8的规范要求在逗号、运算符号之类的内容后面加一个空格,这一点Eric作得不错,在你输入一个逗号后,它会自动给你补一个空格,而PyCharm显然考虑得没有那么周到。你不得不手动一个个敲空格,或留着到最后使用Reformat File功能来纠正。
代码自动补全和代码规范化
两款IDE的代码自动补全作得都挺好。硬要挑出一个更好的来,我会把票投给PyCharm, 它的智能化程度彷佛(我无法给出更精确的评价,建议自行体会)更高一些。
PyCharm除了自动补全,还会用相似拼写检查的方式检查你的代码,当你输入的代码不符合PEP8之类的规范时,PyCharm会适时提醒并对该部分代码做出标记。这个功能确实很贴心,我有理由相信用PyCharm会帮助咱们将代码写得更加规范。
此外,PyCharm还会对当前方法下所用的变量进行检查,当有变量出现未使用、不一致、输入错误等情形时,PyCharm亦会将其一一标出,让你一目了然。
版本控制
版本控制也可算是IDE的标配了吧!Eric6和PyCharm都有版本控制的模块,不过舍得认为,PyCharm在这一块作得更细一些,和GibHub结合得很好,舍得用得很趁手。
数据库链接、查看
这项功能只能算是可选配置了。两款IDE都带有数据库内容浏览的功能,它的方便之处在于,咱们要查看数据库中某项数据时,能够没必要打开专用的数据库管理工具(好比SQLite的SQLite Expert, PostGreSQL的PG Admin,MySQL的PHPMyAdmin等),直接在IDE内查看。
Eric6自带一个内建的SQL浏览器,界面相对简陋,并且每次打开都必须从新设置,不够方便。
PyCharm是经过Database Tools and SQL这款插件来实现数据库链接和查看的功能,用来临时查看一下数据是足够了。
书签
在开发过程当中,咱们常常须要在一个文档中不一样的位置间切换,此时书签功能会给咱们带来很大的便利。
两款IDE都有书签功能,PyCharm作得更好一点,它的书签不会由于你退出程序而清除。而Eric6则会在你每次退出程序时,清空你的书签设置。
TODO
舍得在堆代码的时候,想到一些下一步要完善的功能之类的内容时,每每会在文档中插入一行,行首写上“# todo,”,而后把当时的想法写进去。这样往后就能根据todo的标记和内容来逐渐完善本身所开发的软件。
两款IDE都支持Todo功能,它们会把你在当前项目中的每一行标有todo的内容都搜集起来,以供你随时查看。只是在功能的完善性上,略有差距:
相比之下,PyCharm以微弱的优点胜出。
帮助文档
Eric6自带一个WebKit内核的帮助浏览器,当你设置好Python/PyQt/Pyside/Qt等帮助文档的路径后,能够在帮助菜单中直接点击这些文档的连接,Eric6就会调用帮助浏览器来显示这些文档。
PyCharm虽然有一个外部文档的设置和对应的菜单命令,但功能实在太弱比,应该好好完善一下才是。
另外PyCharm虽然提供了一个Search EveryWhere的“强大”功能,但因为搜索结果匹配每每不能尽如人意,使得此功能形如鸡肋。
结语
经过上面的比较和分析,相信你们自会得出本身的答案。简单说一下舍得的观点: