我用
Python写的程序往往都很短,其实我觉得多数Python程序都很短吧。所以我就是在
Vim中编辑,在命令行下运行Python程序,调试就靠print。在写
4digits的过程中,代码越来越长,调试工作量增大,我考虑要用一个IDE。
Python的IDE第一个看点就是代码补全。也试过一些(号称)有代码补全功能的IDE,但都不是拿来就立刻见到补全功能的。
WingIDE的代码补全却很赞,随敲随出。
我在Python主页的
维基上看到WingIDE有免费的开源许可,就是说如果只用来开发开源软件,那么就可以获得免费的许可码。我按照要求,把开源许可的申请下载、打印,用手签名,然后电邮给公司。之后,他们就给了我注册码。我申请的是双操作系统的许可,这样我在家的Ubuntu和我在办公室的Windows上都可以用WingIDE。而且如果我再签一份保密协议,甚至可以获得WingIDE的源代码,真是太慷慨了。
除了代码补全功能外,WingIDE用起来很方便的功能还有调试。设置断点调试,程序暂停后,用鼠标指到代码中的任意名字,都会用气球方式的提示显示出该名字的值,非常方便。在调试中,可以在Debug Probe窗口中介入暂停的程序,其实就是一个保持了程序暂停时的执行状态的shell。有内置的Python shell,可以进行方便的交互操作。另外光标所在处的变量的类型、文档等相关信息,都可以自动在相关窗口中显示。
先不说WingIDE的强大和方便。这个软件是商业软件,并不是自由软件。我只有在实在没有满意的自由软件时,才会用非自由软件。Python是自由软件,但是最好的(我认为最好的,但不少人就喜欢折腾Emacs)Python开发环境却不是自由软件。其实,自由软件和非自由软件,不可能有哪个可以完全取代另一个,它们会动态地共存。我的Ubuntu下面,除了WingIDE,还有一些商业软件,如Picasa(非常棒的照片管理和润色软件),Google Earth(好玩的地图),Skype(可以跨平台地语音聊天),Adobe Reader(备用的PDF查看软件),Opera(备用的浏览器),腾讯QQ(备用的QQ软件),微软的若干TTF字体(并不侵权)等。
有个叫
vrms (Virtual Richard M. Stallman) 的程序,可以列出计算机中的非自由软件。我的目前是这样的结果(并不全):
tux@Paradise:~/docs $ vrms
Non-free packages installed on Paradise
autobook GNU Autoconf, Automake and Libtool Book
Reason: Modifications limited
cmap-adobe-cns1 CMaps for Adobe-CNS1
human-icon-theme Human Icon theme
latex2html LaTeX to HTML translator
linux-restricted-modules Generic Linux restricted modules.
linux-restricted-modules- Non-free Linux 2.6.27 modules helper script
linux-restricted-modules- Restricted Linux modules for generic kernels
opera The Opera Web Browser
picasa Image management application from Google
stardict-langdao-ce-gb langdao-ce-gb dictionary data files for StarDict2
stardict-langdao-ec-gb langdao-ec-gb dictionary data files for StarDict2
stardict-oxford-gb oxford-gb dictionary data files for StarDict2
sun-java6-bin Sun Java(TM) Runtime Environment (JRE) 6 (architecture
sun-java6-jre Sun Java(TM) Runtime Environment (JRE) 6 (architecture
sun-java6-plugin The Java(TM) Plug-in, Java SE 6
tangerine-icon-theme Tangerine Icon theme
tango-icon-theme Tango Icon theme
Reason: Creative Commons Attribution-ShareAlike 2.5 License
unrar Unarchiver for .rar files (non-free version)
Reason: Modifications problematic
wingide3.1 A commercial development environment for Python
Contrib packages installed on Paradise
dosemu The Linux DOS Emulator
msttcorefonts Installer for Microsoft TrueType core fonts
Contrib packages with status other than installed on Paradise
nvidia-kernel-common ( dei) NVIDIA binary kernel module common files
19 non-free packages, 1.0% of 1827 installed packages.
3 contrib packages, 0.2% of 1827 installed packages.
以前觉得安装这些软件会让计算机变得不够纯洁,现在已经没法避免它不纯洁了:D。