- A New Harvest of Python IDEs
- Four IDEs
- Innovation and Conservatism
- PythonWorks
- Wing IDE
- Pythonwin
- IDLE
- Conclusion
- Resources
Innovation and Conservatism
IDLE is the most old-fashioned IDE. It looks a lot like Emacs rewritten in Python. Even though it has been a long time in development, there are no interesting innovations. Put simply, it's an editor with Python support and a class browser. On the other end of the spectrum is PythonWorks. The PythonWorks interface looks and works like a web browser, but one in which an editor window appears. Pythonwin and Wing IDE are somewhere in between those two. Pythonwin solidly takes the interface design from Microsoft's IDEs, and that makes for a usable interface, even if it's not an exciting one. Wing IDE takes the class browser idea one step further, and offers a very extensive source browser. Actually, Archaeopteryx implemented all of the features in Wing I wanted to put in my own Python class browser, QPyBrowser, but never had time to implement, and I'm very impressed. I wish their application was open source so I could see how they did it.
A very important difference between IDEs is how they utilize your screen spaceevery extra line of code on-screen means extra productivity. Both IDLE and Wing IDE litter your screen with lots of different windows. Pythonwin contains all windows in one master window, and divides the editing windows from the other components using slider bars. PythonWorks shows just the one window, and can't show the contents of two files at the same time, but allows you to browse forward and backward through the files you've opened. What is missing in this gamut of window options is the tabbed editor, a paradigm that is gaining popularity. For example, in an IDE like Borland's JBuilder, you can open many files, but they are all opened in the same window, with notebook tabs allowing navigation.
Of course, every IDE offers an editor. This is often Scintilla, the excellent cross-platform editing component created by Neil Hodgson. Apart from the all-important editor, IDEs often implement a source or class browser, a project manager, a debugger, an interactive Python shell, a documentation editor, and a GUI designer. Not all IDEs offer every component, of course.