[Pythonmac-SIG] Discussion of Python IDE's: strengths and weaknesses (long)

Kevin Walzer sw at wordtech-software.com
Wed Jul 6 18:37:51 CEST 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Wolfgang,

- ---
Riaan Booysen wrote:

|
| Kevin's comments here relate to an incorrect way in which subprocesses
| were launced under OS X for those IDEs.
|

Riaan makes a good point here. Geoff Canyon offered a very useful hint
on configuring the various Python IDE's to launch GUI programs. For
instance, with Boa Constructor, you would set the path this way:

/Library/Frameworks/Python.Framework/Versions/2.4/Resources/Python/Contents/MacOS/Python

Wolfgang's question has prompted me to think more generally about each
Python IDE for OS Xthat has been discussed. I've used, or tried to use,
every one of them over the past several months, and I'd like to offer a
brief discussion of each, plus some that have not been discussed at
length. So, in  no particular order:

1. Boa Constructor. This is the one that I've packaged most recently for
OS X. I haven't yet done a "real" project in it, so I don't know all of
its capabilities, but I can definitely say that it is a powerful tool
that reflects several years of development work by Riaan and others.
While its learning curve is not trivial, I found that just in following
the "getting started" tutorial that I was able to create a simple
wxPython GUI project more easily than with any other toolset. Boa is
also, without a doubt, the best-documented of any open-source Python IDE
that I've seen: its documents are clear, thorough, extremely extensive,
and well-written. I can definitely understand the acclaim that Boa has
gotten on other platforms. The work I've done with Boa has mainly been
to get a stable configuration for it to run on OS X. As I noted above, I
haven't worked with Boa as extensively as the other tools I've packaged,
so there may be more work to be done with stability, identifying and
fixing bugs, etc. There may also be limits to what can be done, limits
that are attributable to the underlying wxPython/wxMac libraries. As I
get more experience working with Boa, and as users continue to provide
bug reports, I will be able to contribute more to the Mac version.

2. Spe, which also includes wxGlade and other tools. My most extensive
experience has been with the Spe/wxGlade combination. Spe itself is a
Python editor, and bundles the other programs (including wxGlade) to
provide a complete environment. Spe's big strength, especially for
wxPython development, is its code completion/code tips capability, and
its class browsing features: both are well-done. I also like Spe's
built-in console: it's my favorite tool for doing interactive
playing/learning with Python. Here Spe's "code-sense" capabilities are
also very helfpul. Supplementing Spe's general capabilities is wxGlade,
which is a good GUI-building tool for wxWidgets. wxGlade does have a
learning curve, but once you get a feel for how it works, it's useful
for developing the GUI component of a wxPython script. It doesn't link
widgets with events; you have to do that by hand. In the past wxGlade
had serious stability issues on OS X; it would crash randomly, and
frequently. The newest version (v. 0.4.0 in CVS, which includes some
patches submitted by me) is more stable, and running it against the
latest Python/wxPython versions also helps. I've been able to use it
successfully on a couple of small projects. Spe also had stability
issues, which have been reduced greatly by moving to the latest
Python/wxPython. A plus for both Spe and wxGlade is that they provide
good documentation.

3. Moving away from non-wxPython tools: Eric3 is a Python IDE that's
written in PyQt, which I also maintain for the Mac. Eric3 is a very nice
editing environment, including project management, integration with Qt's
GUI building tools, unit testing, integration with CVS/Subversion, etc.
These capabilities are marred by serious stability issues that I don't
currently know how to address: it crashes constantly on OS X. I don't
see these reports of chronic instability for Eric3 on Linux, so my guess
it's related more to the underlying PyQt libraries. Qt 4 has just been
released, with a version of PyQt 4 probably a few months away, so I'm
hoping that an upgrade of Qt will help with Eric3's problems. Another
conspicuous lack for Eric3 is documentation; I'm going to work on
writing some basic documentation for this IDE, once I get it running
reasonably well.  The instability is a real shame, because it's a nice
environment otherwise.

4. WingIDE: Wing is a (rather expensive) commercial IDE, and as you
should expect, it doesn't have the stability issues. It also has all
kinds of slick features, including code/class browsing, extensive and
well-written documentation, and so on. Wing provides a free license for
open-source development, which is nice. Wing's howling flaw is that it's
a GTK-based (meaning X11) application, which I eventually found to be
such a distraction that I stopped using it. Wing uses Aqua-type theming
to try and fit in, but it still is uncomfortably jarring at least for
me. The disjuncture between X11 and Aqua is tolerable when I'm using
Gimp for lightweight image editing, but for more serious development
work, I want a native tool.

5. I'd also like to say a word for two tools that are often denigrated
on OS X: IDLE and PythonIDE, which is part of MacPython. Being a Tkinter
app with no Mac optimization at all, IDLE is ugly, but it's quite usable
for basic editing: it has syntax coloring, code/class browsing, and
other useful features. Whatever its cosmetic flaws, IDLE is a
well-designed editing program: I wish other languages (i.e. Tcl/Tk)
provided as useful a tool! PythonIDE lacks a few things like syntax
coloring (reflecting the fact that it hasn't been updated since 2001),
but it is otherwise a superb tool especially for its Mac-specific
features: module-browsing including the MacPython Carbon modules, which
are undocumented except in the code itself; its user help, including the
Python documentation itself, which is integrated into the Apple Help
system; and other little goodies. It doesn't look like PythonIDE will be
updated at all, because its foundation (the W widget set, WASTE text
engine, etc.) is literally prehistoric: dating back to Python's days on
OS 8. Too bad, because what is on top of that foundation is really,
really good.

6. PyOxide. I've seen PyOxide touted as PythonIDE's eventual
replacement, and perhaps it will be, but it's not there yet. I've found
it no more stable than Spe--i.e., crash-prone and buggy, though not as
badly as Eric3 is--but that's harder to overlook in this case because
it's a Cocoa application. It's also minimally documented, has some odd
interface features (i.e. it opens with a console that *isn't* a Python
interpreter), and is so oriented to PyObjC in terms of class browsing,
etc. that I can't see how it would be useful for somone working on, say,
a wxPython application.

Another tool that's coming on the horizon is ActiveState's Komodo;  a
beta version will supposedly be released this fall. Komodo is a
commercial IDE, like Wing, that supports Python, Tcl/Tk, Perl, and other
interpreted langauges. It's expensive for commercial development but has
a trivial cost ($30) for personal, noncommercial use; there's also very
little, feature-wise, that separates them. (I think a Tk GUI builder is
the only thing--but Tk code is easy to write by hand, much easier than
wxPython in my experience.) Komodo will run as a native Aqua
application, so it should be very interesting to test; it's gotten good
reviews on other platforms.

Of course, there is also always
(Emacs/Vim/insert-your-preferred-text-editor-here) + Terminal as a
productive editing environment as well.

I hope this helps, and isn't Too Much Information (TM).


Cheers,

Kevin Walzer, PhD
WordTech Software--Open Source Applications and Packages for OS X
http://www.wordtech-software.com
http://www.kevin-walzer.com
http://www.smallbizmac.com.
mailto:sw at wordtech-software.com

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (Darwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCzAjeJmdQs+6YVcoRAv3kAJ9/g2yZ4WNMdqPYa8OvIKXXik3kZQCfTAU5
M9AYVT62fhZh3dwF6IL1lfQ=
=chqZ
-----END PGP SIGNATURE-----


More information about the Pythonmac-SIG mailing list