Monday, July 13, 2009

Guido van Rossum on IronPython in Action (he doesn't like Windows Forms but Davy Mitchell does)

Guido van Rossum is the creator of Python and its Benevolent Dictator for Life (BDFL). He is employed by google and not known for his love of the Windows platform. That aside I sent him a copy of IronPython in Action and he has reviewed it. As you can tell from the title of his blog entry it isn't a typical review, but he does say some very nice things about the book:
Seeing a book like IronPython in Action, by Michael Foord and Christian Muirhead, is another milestone for IronPython. This is a solid work in every aspect, and something nobody using IronPython on .NET should be without. The book is chock full of useful information, presented along with a series of running examples, and covers almost every aspect of IronPython use imaginable.

There are some introductory chapters -- some fluff about .NET and the CLR, an introduction to Python, and an introduction to with .NET objects from IronPython. The Python introduction has a slight emphasis on differences between IronPython and CPython, though there aren't enough to fill a chapter. This is a good thing! The chapter does a pretty good job of teaching Python, assuming you already know programming. In general, the book is aimed solidly at professional software developers: unless you are paid to do it, why would anyone want to get intimate with Windows?
Unfortunately reading the early chapters that go through developing a simple Windows Forms example application seems to have given Guido terrible flashbacks to a brief period of C++/Win32 development and the rest of the article becomes somewhat a rant about the Microsoft / Windows programming experience.

I chose a Windows Forms application because it makes a quick visual and cross-platform example application (Pro IronPython also starts with a winforms example app). More important to the early chapters than the specific winforms API is creating a structured application (Model-View-Controller etc) with Python - alongside introducing Python language features like first class functions and showing the way round .NET APIs such as System.Xml and so on.

This aside I think Guido is a little unfair to Windows Forms, it's certainly no worse than other GUI toolkits I've used, and whilst a little verbose in places is generally quite good. Ironically the only examples of pixel positioning in the book (that I can recall anyway...) is to demonstrate how much easier the visual designer can make some aspects of GUI development...

Davy Mitchell disagrees with Guido's assessment of Windows Forms:
During his review of ‘IronPython in Action’ Guido describes programming WinForms as ‘still looks incredibly tedious to create the simplest of UI’. This is a little unfair. Let me make my case. Firstly MS are not looking to make IronPython a major desktop application language – it could have been but is not in VS2010 with a GUI editor. For now the focus is elsewhere. So if you work with desktop applications and IronPython things are a bit ‘by hand’. Having been hacking various desktop tools, experiments and oddities for several years, I feel qualified by experience to say it is a pretty good state compared with wxPython, Tkinter and some of the web frameworks.
Note that IronPython in Action does demonstrate how to use the Visual Studio winforms designer with IronPython, and discusses when it is better to use a designer and when to handroll code.

Also note that alternative UI toolkits for IronPython are available. WPF is one which is Windows only (and as well as a chapter in the book is discussed in the comments on Guido's blog). Through Mono, although the Windows compatible ones work with .NET as well, you also have the choice of:

No comments:

Post a Comment

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