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.
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.