<<

REVIEWS Python IDEs

Comparing Python IDEs BEST BUILDERS

Codrut Popa, Fotolia

A number of useful development environments are available for Python Without a license, the program runs for only 10 minutes. For just US$ 30 in . We’ll show you around some popular Python IDEs that are more, the developer will send you a CD, but only within the United States. more than just text editors. BY CARSTEN SCHNOBER What I like about Wing IDE is its clear overview of the programming environ- ment. The Source Browser in the Profes- hat can you do with an Inte- support Python along with a number of sional version lists functions, classes, grated Development Environ- other programming languages. and methods. Down to the level of indi- Wment (IDE) that you can’t do vidual variables, you can expand entries with a ? , , , and  Wing IDE and then click to add them to your code. all offer features such as syntax Wing IDE [1] (Figure 1) is a commercial The feature sup- highlighting and for all developer environment that focuses en- ports multiple-file develop- major programming languages. tirely on Python. Two variants of Wing ment, giving the an over- A good IDE, on the other hand, adds are available: Wing IDE Professional view of the files within the project scope features such as and project costs around US$ 180, whereas the Per- and defining specific properties, such as management. sonal edition is US$ 35. Despite its price, an alternative Python interpreter or an Wing does lack a couple of critical fea- extended Python path. The Contenders tures (see Table 1). The Professional version of Wing IDE, This article examines some of the lead- If you are interested, you can down- in particular, facilitates collaboration on ing Python IDEs. I will focus on applica- load Wing and use your credit card to projects. It can handle project synchroni- tions intended specifically for the Python purchase a license. Up to three evalua- zation via CVS, Subversion, or environment. Other options include tion licenses per person are available automatically, and Wing will even han- tools, such as Komodo and , that for a trial period of up to 10 days. dle details such as which control charac-

44 ISSUE 81 AUGUST 2007 WWW.LINUX - MAGAZINE.COM Python IDEs REVIEWS

ter to use for line breaks – a typical headache in cross-platform cooperation. The Personal version lacks the ability to define keyboard macros and many de- bugging functions compared with the Professional version. Additionally, only the editor in the more expensive Wing IDE version supports code folding. Because the Personal version lacks so many useful features, it is more like a trial version, and although the price of US$ 35 is far less than the asking price for Wing IDE Professional version, the Personal version hardly has anything going for it compared with free devel- oper environments.  Boa Constructor The GPL-licensed Boa Constructor [2] developer environment (Figure 2) relies doubly on the Wxwidgets [3] GUI tool- kit. For one thing, the Boa’s own user in- Figure 1: The Wing development environment comes in both Professional and Personal terface is programmed with Wxwidgets, editions, but lacks some critical features. and for another, Boa Constructor uses this GUI framework to support users in the program components request space If you really do want to develop Wx- their graphical development work. on the desktop directly from the window widgets applications with Python, the Unfortunately, Boa Constructor just manager, without coordinating their re- Boa Constructor Frame Designer will be goes to prove some of the rumors about quests. Again, this behavior is very a big help. Although it will take you a the Wxwidgets toolkit: The cluttered and much contrary to today’s usability stan- while to find your way around the nu- old-fashioned interface typically leaves dards because it forces users to search merous icons, a nicely structured tutorial the user wondering where to go next. for the right window time and again on does shorten the learning curve. Large numbers of unlabeled, unintui- crowded desktops. The debugger has all the features tively designed, and all-too-similar icons Once you have become accustomed to a programmer needs for bug hunting – are hidden away in innumerable tabs, the usability drawbacks, Boa Construc- but again, with the restriction that forcing the user to mouse over to find tor rewards you with a robust IDE. The searching for the right icons to control out what they do. editor organizes your Python source the debugger can be a nerve-wracking The interface follows what is known code and only lacks code folding. Code experience. By clicking with the mouse, as Multiple Top-Level Windows Interface completion is available at the press of a you can set breakpoints in the editor; Design (or MTI for short): In other button (Ctrl+Space), and this includes this lets you monitor variable values in words, there isn’t a main window, but custom-designed functions and classes. debug mode.

Table 1: Python-IDEs

Wing IDE Wing IDE Boa Personal 2.1.3 Professional 2.1.3 Constructor 0.4.4 Drpython 161 3.9.1 Idle 1.1.4 Supported programming languages Python Python Python Python, ++, Python, Ruby Python HTML GUI development – – Wxwidgets – – Macros – ✓ – – ✓ – Code folding – ✓ – As a plugin ✓ – Code completion ✓ ✓ ✓ As a plugin ✓ – CVS – ✓ ✓ – ✓ – Subversion – ✓ – – ✓ – License/ price Proprietary/ Proprietary GPL GPL GPL GPL US$ 35 / US$ 180 Languages English, German English, German English English English, German, English French, Russian Other operating systems Windows, Windows, Windows Windows Windows Windows Mac OS X Mac OS X Mac OS X Mac OS X

WWW.LINUX - MAGAZINE.COM ISSUE 81 AUGUST 2007 45 REVIEWS Python IDEs

the framework [6], and Eric simply launches Qt Designer [7] to design graphical interfaces. Eric helps Python developers with a project management module. The Eric IDE also lets you define macros and run Pyunit for unit tests. Qt Designer helps quickly create complex in- terfaces; however, the .ui files this ap- proach generates are geared for use with C++. Integrating them with Pyqt takes some manual attention, and Eric does not give you any help with this. If you decide to do without the assis- tance of Qt Designer, you will not find much in the way of support for interface programming. Eric uses wizards to auto- a couple of standard dialogs in Qt. Figure 2: The cluttered Boa Constructor interface needs some getting used to. Good docu- Eric has the largest feature scope of mentation provides an acceptable learning curve despite the complexity. the free Python developer environments, and it has a fairly self-explanatory user I did not experience any stability is- just because of its source browser is interface at the same time, which more sues, contrary to my expectations from hardly worth your while. or less makes up for the sparse docu- recent reports on the web, although ab- mentation. This said, Eric is not really struse error messages on launching and  Eric a big help for those of you interested in quitting the program made me wonder. Development work on Eric [5] (Figure 4) GUI programming. Eric does not make it All told, Boa Constructor is a good is currently continuing in two different easier for you to integrate Qt Designer- choice for developing Wxpython appli- branches: Eric3 relies on version 3 of the styled .ui files with your Python pro- cations because of its frame designer. Qt interface, and Eric4 uses its successor. grams. As with any other IDE, if you Apart from this, Boa gives you an honest Apart from this, both versions have the want to program a Qt interface, you’ll developer environment but without any same functionality. In a perfect example need to have some knowledge of Qt. show-stopping features that would war- of the principles of free software, Eric rant enduring the shortcomings of the combines existing programs to create a  Idle graphical user interface. comprehensive developer environment. Idle’s [8] claim to fame is that it is the For example, the integrated editor uses brainchild of Python’s inventor, Guido  Drpython Drpython [4] (Figure 3) relies on sim- plicity rather than feature scope. The program provides a simple editor with Python and displays the modules, classes, and methods in the source browser. Like Boa Constructor, Drpython was written in Wxpython and thus provides cross-platform support. Drpython does not have any special tools for GUI development. Bug-hunting help is limited to a simple syntax check in Drpython. The program lacks automatic code completion; this said, you can install a plugin to fill this gap. When launched, Drpython gives you a choice between beginner and ex- pert mode; however, the differences are restricted to the options in the prefer- ences dialog. The program walks the line between editor and developer environment. If you already have a favorite editor for Py- Figure 3: Drpython gives developers a clear view of their Python code, but it lacks a debugger thon programming, moving to Drpython and other tools.

46 ISSUE 81 AUGUST 2007 WWW.LINUX - MAGAZINE.COM Python IDEs REVIEWS

van Rossum, in cooperation with various other Python gurus (Figure 5). Idle is part of the official Python distribution. Just like Drpython, it mainly provides a text editor with Python-specific syntax highlighting. The (Figure 6) provides an overview of the functions and classes in the script along with their methods. The Path Browser is a useful feature that gives users the ability to browse packages and modules discov- ered in the Python path. Idle does not have automated code completion, although the editor does display the signature of a known func- tion once you have entered it. The debugger is still under develop- ment, and it is restricted to basic func- tionality after launching a program in a Python shell. The Idle debugger cur- rently doesn’t let you monitor variable values. The Windows version still Figure 4: For interface design, Eric simply launches Qt Designer, which was mainly developed doesn’t let users set breakpoints, and with C++ in mind. this makes the debugger more or less useless on the Windows operating sys- have no more than basic functionality. though it is quite normal for enterprise tem. Fortunately, this problem does not The advantage of known commercial use. Thanks to the evaluation license, exist on Linux, and troubleshooting with IDEs, especially from the world of anybody interested in Wing IDE can Idle lived up to our expectations for the Windows, compared with simple text form their own opinion before opting for most part. editors, lies mainly in their ability to either of the commercial variants. ■ remove many manual steps from GUI  Conclusions development. It is probably because of the typical All the Python IDEs investigated here Linux user’s love of spartan text editors performed fairly badly in this respect, that most free developer environments whether they are free or proprietary. Boa Constructor is a tool to be taken seriously by Wxpython developers, assuming they are able to work around the us- ability issues. If you pre- Figure 6: Idle’s class browser provides a neat fer to avoid the manual overview of Python code. coding of GUI toolkits, you might have no alter- INFO native to tools such as [1] Wing IDE: http:// wingware. com Glade [9], Gazpacho [2] Boa Constructor: [10] for GTK, or Qt http:// boa-constructor. sourceforge. net Designer. [3] Wxwidgets: Wing IDE made the http:// www. wxwidgets. org most positive impres- [4] Drpython: sion of the field. Its con- http:// drpython. sourceforge. net trols are intuitive, and [5] Eric: http:// www. die-offenbachs. de/ the Professional version eric/ index. supports cross-platform [6] Scintilla: http:// www. scintilla. org collaborative program- [7] Qt Designer: http:// www. trolltech. ming. The asking price, com/ products/ qt/ features/ designer however, is way above [8] Idle: http:// www. python. org/ what an average Linux [9] Glade: http:// glade. gnome. org Figure 5: Despite its status as the official Python IDE, Idle home user would be [10] Gazpacho: http:// gazpacho. sicem. biz lacks some of the features found in alternative tools. willing to invest, al-

WWW.LINUX - MAGAZINE.COM ISSUE 81 AUGUST 2007 47