Boa Constructor is a free IDE written in Python that its creators describe as a wxPython GUI builder. By no means new, the first release of Boa Constructor debuted in the year 2000. The version I tested, 0.2.3, supports 2.x versions of Python from 2.1 to 2.6; I tested it with my 2.6 installation. The IDE's author says it should also support version 2.7. It does not work with any 3.x Python releases, partly because wxPython (on which it depends) does not yet have a 3.x-compatible version, and partly because Boa Constructor's author is not yet prepared to support two code bases. Boa Constructor supports neither Jython nor IronPython.
Boa Constructor's user interface consists of a set of frames, separate windows that you employ in concert to create and debug Python applications. Those windows are:
- Palette, a toolbar and multitabbed pane. Each pane opens into yet another toolbar. Click the New tab and Boa Constructor presents tool selections for creating a new Python package, module and so on. Other tabs reveal toolbars for accessing visual controls, menus, buttons and more, that are placed in the GUI designer.
- Inspector, a window for viewing and modifying properties of currently selected objects.
- Editor, Boa Constructor's primary workspace. The editor provides different views, depending on what's open in it. Open a Python module, for example, and it is displayed in the source view. Begin GUI development on a form, and the designer view opens. The editor also has an explorer view, which displays a tree control of the code's components, including classes, methods, functions.
- Explorer, in which you can navigate a variety of data sources: the file system, ZIP archives, CVS repositories, FTP, Zope objects and more.
- Debugger, which offers a self-explanatory view of all the fundamental debugging capabilities. It can debug multithreaded applications, and it has special support for debugging Zope scripts. You can also debug a remote application by importing debug server code into the target and adding a call that turns on the tracer. (You must also ensure that paths to source files are identical on both host and target.) Also, when you turn on the debugger, Boa Constructor opens an interactive console in the context of the debug target.
Boa Constructor does not have the concept of a "project," as in having a project file that carries meta information about the other files that comprise the final application. Instead, when you create a wxPython application in Boa Constructor, the IDE builds a base Application.py file. If you open that file in the editor, an Application View tab appears that displays the other files within the application. However, if you open any other Python source file, no Application view tab appears because Boa Constructor recognizes that you're working with a standalone module.
The layout of Boa Costructor's IDE is unusual and takes some getting used to. In addition, the process of creating a wxPython application, knowing which button you must push or dialog you must conjure and from what pane in the IDE and when, is not obvious. Luckily, there are tutorials that guide you through the basics. Without those, I would've been lost my first time through the process. Even so, more tutorials would certainly be beneficial. Otherwise, the documentation is moderately good, and it includes both a reference guide and a Getting Started section.
Boa Constructor requires time to master, much less understand. Many of its quirks must be learned the hard way. For example, if you change a GUI component of an application in the designer, you click the Post button to have corresponding Python code written into the proper modules of your application. However, this does not actually save the changes. If you want to test the new application, you must click another button to save the source files to disk.