Friday, July 17, 2009

Choosing an IronPython editor for teaching

As outlined in IronPython in Action Goes to College, Tony Andrew Meyer is teaching a programming course and using IronPython in Action as course material. Part of his preparation is deciding which IDE to use in the course - a choice that is not entirely straightforward for IronPython.

Tony has done a long and thorough blog entry going through all the possibilities. The editors he looks at are: Notepad++, IronPython Studio, SharpDevelop 3.0, SharpDevelop 3.1b1, Wing IDE 101, Davy's IronPython Editor, Visual Studio under experimental hive and Komodo Edit.
The Northtec D520 “Programming” course is changing to IronPython (from Visual Basic) this year, so I have to figure out what editor/IDE the students should use. In some ways, Visual Studio would be ideal, since they need to get exposed to that during the course (and it’s an excellent IDE, with a really great form designer), but since there isn’t any real IronPython support in Visual Studio (hopefully coming in 2010), it’s not really a viable option. Instead, they’ll start with a simpler editor, and then briefly learn how to use Visual Studio’s form designer and subclass the forms in IronPython (as described in IronPython in Action).

The requirements here are a bit different than when selecting an editor/IDE for actual development work. Firstly, it needs to be free (at least for educational use), and it needs to be reasonably simple to use the basic functionality (since these are first-year students). Code-completion isn’t necessary (on the one hand, it helps them out while they are learning – on the other, they rely a little too much on it), nor is a built-in debugger, or support for complex projects.

I considered seven different editors/IDEs...


Unfortunately, there isn’t a clear winner. My recommendation will be that the students spend the first half of the course using a text editor: if they are comfortable continuing to use Notepad++, then that makes the most sense. If they are willing to try a new tool, then I would recommend Komodo Edit (or DIE if they want something that just works without having to do any additional configuration). When the time comes to start learning how to use a graphical form designer, then I would recommend that they install the Visual Studio SDK and add IronPython support under the “Experimental Hive”, although they’ll also learn how to use standard Visual Studio and subclass C#/Visual Basic forms in IronPython. It seems like they could then continue to use the “Experimental Hive” for the rest of the semester (even for Console projects), although they would know how to fall back to the previous tools if necessary.
Tony didn't try out Eclipse with PyDev (which may have added IronPython support after he started the exercise or it may be that using IronPython 2.6 isn't an option for Tony). It would be really nice if MonoDevelop had IronPython support so that it was a viable possibility.

An email regarding MonoDevelop was just posted to the IronPython Mailing List:
MonoDevelop is the IDE of choice for .NET languages on Linux. But currently there's no IronPython support for it. There are a couple starting points available in the svn sources, but someone would need to take a fresh look at it and write a new IronPython binding.

Anyway, if there's any initiative to increase IronPython use on non-Windows platforms, this might be one way to help that.

Some references--

1 comment:

  1. Thanks for the link!

    FWIW, today, I gave in and tried Eclipse/PyDev and also NetBeans. I couldn't get PyDev to work, but NetBeans was actually pretty nice. My post has a link to the added material.


Note: only a member of this blog may post a comment.