Programming Tools: Eric3
August 31st, 2004 by Reg. Charney in
I am writing this column for a number of reasons. First, I enjoy programming, and I find writing about it to be a trip. Second, a lot of wonderful programming tools are out there, but many are lost in the noise of competing commercial and non-commercial products. So, part of my job with this column is to highlight some of the tools I think are worthwhile. I will try to be objective, but in the final analysis, it all is subjective. You are free to agree or disagree, as is your wont.
Also, I don't know everything. New tools are introduced and existing ones are changing and expanding all the time, faster than I can keep up. For these reasons, you can tell me what you think and suggest other tools that you have found particularly useful. You, reader, are invited to be a contributor to this column.
In the world of open source, a constant tension exists between commercial and non-commercial products. Because of the limited resources many open-source projects have, I plant to review them more often than commercial products. That said, I have no problem with commercial products as long as they do not lock users into their use. Thus, I happily will review a commercial compiler, say, because you always are free to compile your programs using other compilers. The principle here is as long as the input and output obey open standards, products can do any processing they want--you are not locked in. This conforms to Richard Stallman's definition of free software.
I have a method to my madness is writing this column. When discussing a tool, I will try to cover these points:
Why you should use this tool.
What the major features of this tool are.
What setup or installation you need for this tool.
What resources are required to install and use the tool.
A sample application, hopefully useful, to illustrate the use of the tool.
The pros and cons of the tool.
A chart comparing other similar tools, if appropriate and if I am aware of these other tools.
A semi-subjective rating of the tool.
Being a Python developer is one of my many roles. I believe GUI-based IDEs are effective, so I have looked at a number of products, both commercial and open-source, that support Python. I chose the open-source eric3 IDE by Detlev Offenbach. It is written specifically for Python, and it uses PyQt bindings and the QScintilla editor widget. I find the eric3 IDE to be a delight. Figure 1 is a screenshot of a project showing eric3 version 4 beta, the version I currently use.
Here are some of the main features of eric3, the features I find most beneficial:
The main window layout includes tabview, listview and workspace, all of which are configurable.
The editor has syntax highlighting, code folding, auto indenting, brace highlighting, auto completion, calltips, bookmarks and macro recording capabilities.
An integrated project manager shows all the source files, forms, translations and any other file or directory that is part of the project, each displayed on its own tab. The source browser also has built-in class browsing capabilities.
An integrated, full-featured Python debugger that comes in three different flavors: the standard variant, a variant that doesn't need Qt and a variant to debug multithreaded applications. With the help of an additional debugger stub, it can be used to debug mod_python scripts as well.
An interactive Python shell has integrated debugger support and command-line completion.
An explorer window exists for walking through your directory structure with built-in class browsing capabilities for Python files.
Window panes display local and global variables in the current scope while debugging a program.
There are integrated source code wizards: a QRegExp wizard, a Python regexp wizard and several wizards for Qt dialogs.
The integrated refactoring browser uses the Bicycle Repair Man package.
Scripting capabilities are built into eric3.
There is an integrated interface to the Python Module unittest and code coverage analysis.
An integrated help viewer can display HTML help files, or you can choose to use Qt-Assistant to view help files.
You have the ability to start Qt-Designer and Qt-Linguist from within eric3.
You also can compile Qt-Designer forms to produce Qt-Linguist files and release them from within the IDE.
As you can see, eric3 has an impressive list of features, many of which I have omitted.
Installing eric3 is trivial, assuming you have a matching Qt installation already present. Download the eric3 tarball, untar it and then, as administrator, run python install.py. Otherwise, you need to install Qt, sip and PyQt first. The README file is quite clear on the steps you need to follow.
For me, installation was not an issue because I was using Qt as my GUI of choice. Both KDE and wxPython also are supported by eric3.
I develop under SuSE Linux 9.1. As such, I have access to a non-commercial Linux version of Qt 3.3.1. Currently, no non-commercial Windows version of Qt is available. In the case of Windows, licenses for Qt and QScintilla need to be obtained. The former comes from Trolltech. PyQt and QScintilla come from Riverbank Computing (see Resources).
Using eric3 often is intuitive. I spend most of my time in the editor or debugging. See Figure 2 for a screenshot of a debugging session. It shows the class hierarchy, source code, stack trace and display of local variables. They all are readily available once you're using eric3.
Some of the pros for using eric3 are:
Intuitive interface for both development and debugging.
Effective debugger.
Good code editor.
Intuitive project manager.
Speed of operation is good; it comes up fast.
Some nice integrated tools, such as unittest and refactoring.
Cons for this product include:
The editor cannot find or replace within selected blocks of text when the selection is made by cursor movement.
Using the repository feature is confusing for someone who already has the source under some local version control.
More documentation is needed. For instance, no useful documentation is provided for using the Project menu options.
Currently, eric3 supports only Python. There are future plans to support Perl, though.
Installing eric3 for the first time would benefit greatly from a packaging systems similar to Red Hat's RPMs or Debian's DEBs.
The integrated debugger is the best feature. My most serious complaint is the editor not working with selected portions of text. I would give eric3 a suitability score of 4.2 out of 5, a rating of Very Good.
You can use two example utilities to check out eric3 for yourself. The utilities can be obtained as tarballs on the Linux Journal FTP site, listed in Resources below. u2d converts code from UNIX to DOS, and d2u converts from DOS to UNIX. Figure 3 shows u2d.py being debugged.
Subscribe now!
Recently Popular
| How Should Mozilla Execute Its Vision? | Jul-08-08 |
| Why Python? | May-01-00 |
| Building a Call Center with LTSP and Soft Phones | Aug-25-05 |
| Add an Auto-Incrementing Build-Number to Your Build Process | Jul-08-08 |
| An Open Video to HP | Jul-02-08 |
| GPS and GIS: A Great Combination, Part I | Jul-08-08 |
Featured Video
From the Magazine
August 2008, #172
There's nuttin like a Cool Project to give you some relief from the summer heat, so get out your parka cuz we got a bunch of em. First up is the BUG, not a bug, The BUG. It's got a GPS, camera and more, in a hand-sized package that's user programmable. The BUG does everything. It's both a floor wax and a dessert topping. Get one now. Need a software version of a Swiss Army knife? Take a look at Billix, and don't leave home without it. Then, chew on this one, an X server on a Gumstix device driving an E-Ink display. Need more storage? How about 16 Terabytes? Can do.
And, of course, we have the usual cast of characters: Marcel, Reuven, Dave, Kyle, Doc, plus the new kid on the block Shawn Powers. But it doesn't stop there: build a MythTV box on a budget, build your own GIS system, set up the tools to monitor your enterprise and more. Finally, remember The War of the Worlds? Now you can play too.



Delicious
Digg
Reddit
Newsvine
Technorati






come on... this review (and
On June 21st, 2006 Anonymous (not verified) says:
come on...
this review (and many comments) should have looked at things like code intelligence database, code navigation, class browsing, pylint syntax checking, etc.
i mean it's an ide not an editor right?
Saving Eric3 Python Shell Output
On January 11th, 2006 Anonymous (not verified) says:
Does anyone know how to save the output from the python shell to a file in Eric3 IDE?
Re: Programming Tools: eric3
On September 3rd, 2004 Anonymous says:
Tried it. It died on repeated NameErrors for self.xxx variables and couldn't find a parameter passed to the init function.
Needless to say it had a short disk lifespan
Re: Programming Tools: eric3
On September 3rd, 2004 Anonymous says:
As I work both on Linux and Windows, I definitely prefer SPE, which is a rich full featured python IDE with the excellent gui builder wxGlade.
xRope-1.2c2
On July 8th, 2007 Serge Hulne (not verified) says:
Among the lightweight GUIs, using only Tkinter, there is also xRope.
It also has an integrated Visual Builder ("tk_happy") and a smart editor ("rope") with real dot-completion for classes and docstring tips for functions.
See the link : http://sourceforge.net/projects/xrope/
Serge.
Eric3 and SPE are nice, but I
On December 5th, 2004 Alessander (not verified) says:
Eric3 and SPE are nice, but I love to work under Eclipse with xored's TruStudio plugin.
Re: Programming Tools: eric3
On September 3rd, 2004 Anonymous says:
You guys really should take a look at DrPython. It's a really well put together, free, cross platform IDE written in Python and wxWindows. It's now very mature (v3.4.4) but still being very actively developed with updates appearing each week.
The core editor is based around Scintilla and includes a class browser and embedded command prompt for each open file. It also has a nice tabbed interface, has recently adopted a plug-in architecture and is fully scriptable.
It's by far the most productive (and one of the nicest looking) Python IDEs I've come across and I've been using it for all my development work for the fast six months or so.
I really can't understand why more people don't seem to be aware of it.
Re: Programming Tools: eric3
On September 3rd, 2004 Anonymous says:
And diddo that, Dr. Python is great for non-gui development.
Re: Programming Tools: eric3
On August 31st, 2004 Anonymous says:
Why does it look exactly like the Microsoft development environment? Yuck.
I would give anything for a decent Smalltalk-style class browser for Python. I can't stand Microsoft's class browser.
Re: Programming Tools: eric3 -- Delphi like...
On September 1st, 2004 Anonymous says:
Borland with Delphi has set the standard, not MS.
Delphi is outstanding, and QtArchitecht looks a lot like Delphi IDE.
It is predictable that IDE for oo graphic and (non graphic ) programing will copy the best. (delphi)... as Trolltech did.
Welcome to Eric3 that I have not so far been able to install, (still miss a piece!).
May I suggest to allow Eric3 install using YUM, or APT-GET (or its GUI Synaptic)?
Installation is trivial... but it counts!
Thank you
Re: Programming Tools: eric3
On September 1st, 2004 Anonymous says:
I am not familiar with the Smalltalk browser. What features and benefits does it have the make it better than the idiom used be eric3 and other IDEs like ActiveState's Komodo and KDE's KDevelop?
Re: Programming Tools: eric3
On August 31st, 2004 Anonymous says:
Anything? Unto half your kingdom and a new mortgage on your house? I'm sure Detlev Offenbach will be able to accommodate your wishes...