IDE, 全称是Integrated Development Environment,翻译过来就是集成开发环境。Python的开发从2010年5月算起,不知不觉中,到现在已经是第七个年头。
公司主营业务:网站制作、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出七台河免费做网站回馈大家。
这六年里,舍得最常用的IDE是Eric6(一开始是5.x版本),也试用过圈内闻名的PyCharm、WingIDE和Eclipse(+PyDev插件),算是有些心得。今天,着重对Eric6和PyCharm 2016.3作一下简单的评测。
颜值
Eric6是基于PyQt开发的,程序运行甚至只用一个BAT文件来调用,界面相对而言略丑。PyCharm基于Java开发,自带的主题很漂亮,风格比较统一。在颜值这一点上,无疑是PyCharm胜出。
顺带提一下WingIDE,虽然它也带了很多款主题,但整个窗口中有些部位是不受主题控制的。举个栗子,当你选择深色的主题时,窗口左下角往往会有一块白色的控件,忒刺眼。
速度和内存开销
从启动到打开一个项目,舍得掐着秒表测试了这几款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的“强大”功能,但由于搜索结果匹配往往不能尽如人意,使得此功能形如鸡肋。
结语
通过上面的比较和分析,相信大家自会得出自己的答案。简单说一下舍得的观点:
本文版权归舍得学苑所有,欢迎转载,转载请注明作者和出处。谢谢!
作者:舍得
首发:舍得新浪博客