Thursday, July 16, 2009

Interoperability Happens: Ted Neward Reviews IronPython in Action

Ted Neward is a well known .NET developer. He has been reading IronPython in Action and posted a review of it.
Ted Neward doesn't have unqualified praise for the book, but he seems to like it - even getting over his prejudice for 'the whitespace issue' (block structure by indentation in Python).

Here are some things he liked about IronPython in Action:
  • The focus is on both .NET and Python, and doesn't try to short-change either the "Python"-ness or the ".NET'-ness by trying to be a "Python book (that happens to run on .NET)" or a ".NET book (that happens to use Python for code samples)". The authors, I think, did a very good job of balancing the two, making this the book to get if you're in that area on the Venn diagram where "Python" overlaps with ".NET".
  • Part 2, "Core development techniques", starts down the "feed you the Python Kool-Ade" pretty quickly, heading straight into Chapter 4 ("Writing an application and design patterns with IronPython") without much of a pause for breath. The authors get into duck typing, protocols, and Model-View-Controller within the first four pages, and begin working on a running example to highlight some of the ideas. (Interestingly enough, they also take a few moments to point out that IronPython on Mono works, and include a couple of screen shots to that effect as we go, though I personally wonder just how many people are really going down this path.) I like the no-holds-barred, show-you-the-code style, but only because they also take time throughout the prose to talk about some of the concepts at work underneath and laced throughout the code. "Show me then tell me" is a time-honored tradition, but too many authors forget the "tell me" part and stop with code. These guys do a good job of following through.
  • The chapters in Part 3, "IronPython and advanced .NET", form an interesting collection of how IronPython can fit into the rest of the .NET stack, demonstrating how to use IronPython with WPF, ASP.NET, and IronPython's crowning glory, Silverlight. If you're into front-end stuff, this is the section where I think you're going to have the most fun.
  • The chapters in Part 4, "Reaching out with IronPython", is I think the most important part of the book, showing how to extend IronPython (chapter 14) with C#/VB extensions (similar to how a C-Python developer would extend Python by writing C code, but much much simpler) and the opposite—how to embed IronPython inside of existing C#/VB applications (chapter 15), which is really an exercise in using the DLR Hosting APIs. While the discussion in chapter 15 is good, I wish it'd had a bit more thorough discussion of how the DLR could be hosted regardless of the scripting language, though I admit that's pretty beyond the scope of this book (which is focused, after all, entirely on IronPython, and as a result should stay focused on how to host IPy).
The things he doesn't like about the book include too many footnotes, the things we don't cover and the fact that we don't introduce testing until chapter 7. The point about testing is fair. He would have liked to content on WCF and more on SOAP-based web services, WF, and several more of the Microsoft database access technologies (there is pretty much a new one every year - it can be hard to know which one is currently in vogue but ADO.NET has weathered well). We would have loved to have covered some of these topics, the question is which chapters to remove in their place...

No comments:

Post a Comment

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