Foreword

IronPython brings together two of my favorite things: the elegant Python programming language and the powerful .NET platform.

I’ve been a fan of the Python language for almost 15 years, ever since it was recommended to me by a fellow juggler while we passed clubs in a park. From the start I found Python to be a simple and elegant language that made it easy to express my ideas in code. I’m amazed by Python’s ability to appeal to a broad range of developers, from hard-core hackers to amateur programmers, including scientists, doctors, and animators. I’ve been teaching my ten-year-old son to program, and even he tells me that “Python is a great language to learn with.” Beyond teaching my son, I’ve tried to contribute to the Python community that gave me this great language and continues to drive it forward. Prior to IronPython, I started the Numeric Python and Jython open source projects.

It took a bit longer for me to become a fan of Microsoft’s .NET platform and the Common Language Runtime (CLR) that forms its core execution engine. I first learned about the CLR by reading countless reports on the web that said it was a terrible platform for dynamic languages in general and for Python in particular. IronPython started life as a series of quick prototypes to help me understand how this platform could be so bad. My plan was to prototype for a couple of weeks and then write a pithy paper titled, “Why the CLR is a terrible platform for dynamic languages.” This plan was turned upside down when the prototypes turned out to run very well—generally quite a bit faster than the standard C-based Python implementation.

After getting over my initial skepticism, I’ve grown to love the CLR and .NET as much as Python. While no platform is perfect, this is the closest we’ve ever come to a universal runtime that can cleanly support a variety of different programming languages. Even more exciting to me is that the team is committed to the multi-language story and we’ve got great projects like the DLR, IronRuby, and F# to keep extending the range of languages that can coexist on this platform. I’ve even grown to like C# as the most enjoyable and versatile statically typed programming language I’ve used.

As the architect for IronPython, I like to believe that it’s such a simple and elegant combination of the Python language and the .NET platform that it needs no documentation. After all, who could possibly not know that they should use clr.Reference to pass an out parameter to a .NET method? I guess that it’s assumptions like that one that would make me a poor choice for writing a book teaching people about IronPython. The best choice for writing a book like this would be a long-term user who’s deeply engaged with the community and who has been trying to understand and explain the system to others for years. Now, if only we could find such a person...

I first met Michael Foord in July of 2006. I was preparing an IronPython talk for the OSCON conference in Portland, Oregon. This was going to be an exciting talk where I’d announce that the final release of IronPython 1.0 was weeks away. This was a terrible time to be preparing a talk since my mind and time were occupied with all the details of the actual release. To further complicate things, this was the Open Source Convention, and I knew that I needed to show IronPython running on Linux in order to have credibility with this audience. Unfortunately, I didn’t have the time to set up a Linux box and get some useful demos running. Oddly enough, my coworkers (at Microsoft) didn’t have any spare Linux boxes running in their offices that I could borrow for a few screen shots.

I did a desperate internet search for “IronPython Linux” and one of the places that led me to was a blog called voidspace. There I found a tutorial on how to use Windows Forms with IronPython. The reason this tutorial showed up was that it included screen caps of the samples running under both Windows and Linux. This was just what I was looking for! By stealing these pictures for my talk I could show people IronPython running on Linux and also point them to an excellent online tutorial to help them learn more about using IronPython than I could cover in a 45-minute talk.

I had a few hesitations about including this reference in my talk. I didn’t know anything about the author except that his screen name was Fuzzyman and that he had a personal blog that was subtitled, “the strange and deluded ramblings of a rather odd person.” However, I really liked the simple tutorial and I was incredibly happy to have some nice Linux samples to show the OSCON crowd. I was most grateful at the time to this person that I’d never met for helping me out of this jam.

Fuzzyman turned out to be Michael Foord and one of the authors of the book you have in your hands now. Since that first online tutorial, Michael has been helping people to use IronPython through more online samples, presentations at conferences, and through active contributions to the IronPython users mailing list. I couldn’t think of a better way for you to learn how to get started and how to get the most out of IronPython than by following along with Michael and Christian in IronPython in Action.

I’ve spent my career building programming languages and libraries targeted at other developers. This means that the software I write is used directly by a small number of people and it’s hard for me to explain to non-developers what I do. The only reason this kind of stuff has value is because of the useful or fun programs that other developers build using it. This book should give you everything you need to get started with IronPython. It will make your development more fun—and more productive. Now go out and build something cool!

JIM HUGUNIN

SOFTWARE ARCHITECT FOR THE .NET FRAMEWORK TEAM AND CREATOR OF IRONPYTHON

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.41.229