Project Name: Boa Constructor
Founded / Started: The original incarnation of Boa Constructor was started in 1999, called Pygasm, short for "Python GUI Assembler". It was renamed to Boa Constructor at the start of 2000.
Project Page: https://sourceforge.net/projects/boa-constructor/
Code Generators, IDEs, Debuggers; Python
How did Boa Constructor get started?
I worked professionally with Delphi for about 3 years, but I missed Python, which I briefly used before that. So I started playing around with Python in my spare time, but I longed for the Delphi IDE environment.
Because a tool like that was not yet available for Python, I decided to write my own "Delphi for Python". I was especially excited that the IDE would automatically work on Linux, because I knew of very few such tools on Linux. Also I felt that a RAD IDE would perfectly complement the prototyping power of Python.
What is the intended audience for Boa Constructor?
Python/wxPython/Zope developers. Boa Constructor is also popular with people who have used Borland tools or Visual Basic before.
What does Boa Constructor do, and what are some of its key features?
Boa Constructor has, over time, turned into a pluggable IDE framework. Many of the mentioned features can be turned off in the preferences and won't be imported on start up. Since Boa Constructor can store such settings (resource configuration) in different directories, you can in effect run different combinations of Boa Constructor from the same source.
For Python source code editing it provides project management, code completion, parameter hints, code browsing, class explorers, simple UML diagrams, documentation generated from docstrings, CVS support, a shell, running code from the within (but out of process), profiling and debugging. There is also basic support for editing many other file types like txt, HTML, XML, C, Java and Pascal.
A major part of Boa Constructor is the visual frame designer. This resembles the Delphi way of creating controls from a palette and selecting, moving, sizing controls visually and editing their properties and events in an object inspector. A nice innovation of the frame designer is that it allows a few ways in which to make static generated code more dynamic.
Another feature is Explorer Transports. The IDE can open and edit the different supported file types over many different protocols like the file, ftp, dav and ssh. The Explorer can also store bookmarks to such files.
Zope support allows you to browse you Zope tree in the Boa Explorer, create new objects, copy/paste them and edit their properties in the object inspector. Supported Zope objects can be opened in the IDE for editing. The focus is on document and source editing.
What makes Boa Constructor unique?
Something that makes Boa Constructor unique, in a way, is the support and integration with many useful Python projects like distutils, py2exe, PyChecker, Pyrex, Cyclops. I'm currently finished up integration with BicycleRepairMan (package for re-factoring Python code) and also have some support for Chaco Plotting.
How many people do you believe are using your software?
I'm not sure. It is also available outside SF.net and I can't track that, but from indicators like the SF.net downloads, trackers, forums and mailing list I would guess hundreds of users.
What gave you an indication that your project was becoming successful?
When I started getting email from all over the world :) It has been great to receive so many mails of thanks and positive feedback... it really helps me sometimes.
On the professional side, when I started getting Python contract work, I felt the project was successful.
What has been your biggest surprise?
I guess that the project has made it this far and is still going strong. I'm still surprised by how the project could just keep on growing as it has been. A big part of that I owe to the flexibility and power of the Python language.
Why do you think your project has been so well received?
I think many people feel the need, like I did, for such an environment for Python.
Where do you see your project going?
Python and wxPython have been growing steadily for quite a while and I don't see them stopping. As long as Boa Constructor can keep up with them it will be great.
How can others contribute?
Well to start, anyone is always welcome to send bug reports and patches.
People who want to join the development team should first send all changes as patches to me. If I like the work and don't have to change too much before committing it to CVS, I will accept the person on the team. People who can improve the documentation are very welcome also.
One place Boa Constructor also needs more attention and polish is under Linux. Mainly because I spend most of my time on Windows, the Linux version suffers somewhat. I do try to thoroughly test on Linux before releases, but only constant use smoothes the rough edges. Boa Constructor really needs more Linux users who are willing to jump in and fix problems, not just report them.
Do you work on the Open Source project full-time, or do you have another job?
I'm currently working mostly full-time on an American contract. I hope that after this contract I can continue to find similar work, writing applications that run inside the Boa IDE framework.
If you work on the Open Source code part-time, how much time would you say you spend, per week, on the project?
Depending on how much time I spend on contract work, I'd guess I spend between 20 and 50 hours per week on Boa Constructor.
What is your development environment like?
Well it's Boa Constructor ;) This has actually been a design guideline. Almost every aspect of the project is managed from inside Boa Constructor. From managing the code, CVS, maintaining the web pages to uploading files through the SSH Explorer and using distutils support for packaging. I mainly work on Windows 2000 but also test on Mandrake 8.1.
If you could change one thing about the project, what would it be?
Maybe the version :)
Although Boa Constructor is only officially at 0.2.3, I honestly judge it closer to 0.8.0. Some of my original goals like data-aware controls will no longer go into 1.0.0 and other goals have been realized. It's also much more stable now than it has been in the past.
I guess if wishing could change one thing, I wish Boa Constructor had clearer APIs. I am more of a tool or application writer than a library writer, and I guess this makes it more difficult to extend Boa Constructor without understanding much of the framework.
What's on your project wish list?
A very nice milestone for me was to see Boa Constructor being added as a Debian package and as an emerge package for Gentoo Linux.
The biggest upcoming event would be Boa Constructor 1.0.0. I hope this can happen within 3 or 4 releases.
Project Name: Boa Constructor
Background of leader:
Name: Riaan Booysen
Occupation: Software Developer for Tangible Business Software (TBS).
Education: B.Sc. (Computer Science)
Location: Pretoria, Guateng, South Africa
Role: Responsible for the out-of-process debugger in Boa Constructor
Role: Responsible for promoting Boa Constructor and contributed changes to the Zope support
Role: Responsible for the tutorial and contributed bug fixes and improvements to the wxGTK version of Boa Constructor
Role: Responsible for features like the find/replace dialog and running a small socket server so files passed on the command-line can be sent to an already running instance of Boa Constructor
Role: Responsible for helping out with documentation
Marius van Wyk
Role: Responsible for the forthcoming improved OSX version
Role: Responsible for wxPython and helping fend countless reports and queries
I also need to thank some people outside of the Boa Constructor team:
Why did you place the project on SF.net?
SourceForge.net provides a complete solution to running an Open Source project.
How has SF.net helped you?
For me personally, SF.net has relieved the administrative overhead burden tremendously.
The number one benefit of SF.net for your project is:
For the project, number one would be the exposure.
For the users of Boa Constructor, the many cool ways to collaborate, which I would never have had the time to create and administer.