Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Open Source

Wing IDE Professional 3.1.1: An IDE for Python

Mike Riley is a Dr. Dobb's contributing editor. He can be contacted at [email protected]

Before seeing Wingware's Wing IDE in action at PyCon 2008, I was familiar with it in name only. However, the demonstration I saw was so much more than I expected that I asked Stephan Deibel, one of the company's co-founders, to contact me once the latest version was available -- which he did with the recent release of Wing IDE 3.1.1.

I suspect my initial take on software like Wing IDE is similar to that of other Python developers: Why would I need an IDE for Python development? Hardcore Python coders already use text editors like vi or emacs, and most Python distributions ship with IDLE for those who prefer GUI-based development. Still others have bolted on features to the Eclipse IDE to work with Python and other commercial alternatives (like ActiveState's Komodo IDE) offer superb scripting language support for languages like Python.

So what does Wing IDE have that these others do not? Perhaps the most obvious answer to this question is also the best -- the Wing IDE was made for Python developers by Python developers. Anyone who has coded in Python beyond a couple simple utility or sysadmin scripts and has run the demo version of Wing IDE will quickly identify the product's well-tailored fit. Just as Perl and Ruby on Rails developers gravitate toward a particular authoring tool due to some indescribable essence that is woven into the preferred editor's execution, the Wing IDE just feels right from a Python perspective.

[Click image to view at full size]
Figure 1: The Wing IDE shown here running the Linux version with its default interface configuration.

Beyond the subjective comfort level, Wingware has all the bells-and-whistles you'd expect from a polished commercial IDE, especially with one with as long and solid as Wing IDE (Wingware has been in business for nearly 10 years). Given the lengthy list of capabilities, Wingware did a terrific job of keeping them from getting in the way of doing real work. Not once did I feel I was fighting against the IDE, nor did I have any difficulty finding, figuring out, and employing the multitude of features in the software.

Like most modern IDEs, Wing IDE features code intelligence in the form of auto-completion, a class/module browser, function/keyword source assistance, and the expected bracket matching, auto-indenting, syntax auto-checking, and bookmarking. The IDE's gold lies in its extensive local and remote debugging capabilities, including it's ability to set probes and watch values, display stack, and exception data and hooks to debug I/O including live keyboard input during the debug process. This feature alone made my life much easier while developing what was supposed to be a simple Django application. Speaking of web development, the Wing IDE is well-suited for Django, Turbogears, and Zope/Plone-based web development, and the Wingware site provides documented Howto's for those developers seeking optimal code environment configuration for those frameworks.

Other features such as an entirely flexible UI allows placement of window panes and toolbars. Text searches can spider currently open, associated project and anywhere on the disk for basic and Regex-style query string identification. Source version control support for both CVS and Subversion-based repositories help you rest easier, as does the product's unit testing capabilities in the form of unittest, doctest, and nose-style test support.

Wingware publishes the clearly written Wing IDE manual on its website in HTML format for both existing and future customers to reference. The site also points to a handful of Flash-based video demonstrations recorded and hosted by the online tutorial/demo site showmedo.com. The IDE clearly has numerous strengths, but like any commercial offering, it has a few irritations as well. The first is the company's choice to employ the still somewhat controversial approach to licensing, limiting licensed customers the ability to activate the product a maximum of three times. While I can rationalize the company's reasons and certainly their prerogative to do so, it nevertheless comes across as a bit heavy-handed. While Wingware insists it is not collecting any privacy-sensitive information during its online activation process, I can't help but feel uneasy when they a product is not completely transparent in showing exactly what meaningful data is being transacted with their servers during the activation process.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.