Thursday, April 23, 2009

IronPython in Action the Preface

IronPython in Action is finally out!

IronPython in Action is a book published by Manning Publications and written by Michael Foord (me!) and Christian Muirhead.

It is the first book on IronPython, and covers using IronPython 2:
  • For structured application development
  • For scripting and system administration
  • For web development with ASP.NET and Silverlight
  • With WPF, Powershell, WMI and so on
  • Using databases, web services, testing and metaprogramming
  • Extending IronPython with C# / VB.NET
  • Embedding IronPython in .NET applications
The book is aimed at both Python and .NET developers. You can read more about who the book is aimed at and the topics covered, including a full table of contents, in About IronPython in Action.
Where you can download the source code that accompanies the book and also download two chapters for free. These are chapter 1 (introduction to IronPython) and chapter 7 (on testing with unittest). There is also a discount code for purchasing the ebook or print book direct from Manning.
Jim Hugunin, the creator of IronPython, wrote the foreword to IronPython in Action. He has put this up on his blog, and tells the story of how IronPython came to be created.
The blog where I post news about IronPython in Action, especially reviews and updates to the sources / errata.
Below is the preface to IronPython in Action. It tells the story of how Christian and I came to be involved in IronPython and write the book.


A programming language is a medium of expression.
—Paul Graham

Neither of us intended to develop with IronPython, least of all write a book on it. It sort of happened by accident. In 2005 a startup called Resolver Systems set up shop in London. They were creating a spreadsheet platform to tackle the myriad problems caused in business by the phenomenal success of spreadsheets. The goal was to bring the proven programming principles of modularity, testability, and maintainability to the spreadsheet world—and having an interpreted language embedded in Resolver One was a core part of this. As Resolver One was to be a desktop application used by financial organizations, it needed to be built on established and accepted technologies, which for the desktop meant .NET.

At the time the choice of interpreted language engines for .NET was limited; even IronPython was only at version 0.7. The two developers who comprised Resolver Systems (1) evaluated IronPython and discovered three important facts:
  • Although neither of them was familiar with Python, it was an elegant and expressive language that was easy to learn.
  • The .NET integration of IronPython was superb. In fact it seemed that everything they needed to develop Resolver One was accessible from IronPython.
  • As a dynamic language, Python was orders of magnitude easier to test than languages they had worked with previously. This particularly suited the test-driven approach they were using.
They decided to prototype Resolver One with IronPython, expecting to have to rewrite at least portions of the application in C# at some point in the future. Three years later, Resolver One is in use in financial institutions in London, New York, and Paris; and consists of 40,000 lines of IronPython code (2) with a further 150,000 in the test framework. Resolver One has been optimized for performance several times, and this has always meant fine tuning our algorithms in Python. It hasn’t (yet) required even parts of Resolver One to be rewritten in C#.

We are experienced Python developers but neither of us had used IronPython before. We joined Resolver Systems in 2006 and 2007, and were both immediately impressed by the combination of the elegance of Python with the power and breadth of the .NET framework.

Programming is a creative art. Above all Python strives to empower the programmer. It emphasizes programmer productivity and readability, instead of optimizing the language for the compiler. We’re passionate about programming, and about Python.

In 2007 one of us (Michael) set up the IronPython Cookbook to provide concrete examples for the newly converging IronPython community. Shortly afterwards the two of us decided to write a book that would help both Python and .NET programmers take advantage of all that IronPython has to offer.

1 Giles Thomas, who is CEO and CTO, and William Reade, a hacker with a great mind for complex systems.
2 With perhaps as many as three hundred lines of C# in total.

No comments:

Post a Comment

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