Programming Tools: Eric3
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.
|Free Today: September Issue of Linux Journal (Retail value: $5.99)||Sep 27, 2016|
|nginx||Sep 27, 2016|
|Epiq Solutions' Sidekiq M.2||Sep 26, 2016|
|Nativ Disc||Sep 23, 2016|
|Android Browser Security--What You Haven't Been Told||Sep 22, 2016|
|The Many Paths to a Solution||Sep 21, 2016|
- Free Today: September Issue of Linux Journal (Retail value: $5.99)
- Android Browser Security--What You Haven't Been Told
- Readers' Choice Awards 2013
- Epiq Solutions' Sidekiq M.2
- Nativ Disc
- The Many Paths to a Solution
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- Synopsys' Coverity
- Returning Values from Bash Functions
Pick up any e-commerce web or mobile app today, and you’ll be holding a mashup of interconnected applications and services from a variety of different providers. For instance, when you connect to Amazon’s e-commerce app, cookies, tags and pixels that are monitored by solutions like Exact Target, BazaarVoice, Bing, Shopzilla, Liveramp and Google Tag Manager track every action you take. You’re presented with special offers and coupons based on your viewing and buying patterns. If you find something you want for your birthday, a third party manages your wish list, which you can share through multiple social- media outlets or email to a friend. When you select something to buy, you find yourself presented with similar items as kind suggestions. And when you finally check out, you’re offered the ability to pay with promo codes, gifts cards, PayPal or a variety of credit cards.Get the Guide