It seems to me that there is a lot of talk about the new .NET Dynamic Languages lately. Because I wanted to see what the DLR was all about I will learn IronPython as part of my quest to learn new programming languages.
Learning new language
When I learn a new programming language I look up three “ingredients”: a Book, tutorials/code examples and a project. It also helps if to have a “programmer friendly” IDE that helps writing and debugging.
Learning from examples scattered around the internet is possible, but I found that I learn new technology quicker when these ingredients are available. Luckily with IronPython there was not shortage of resources.
I’ve also received help from friends who showed me where to start my journey (thanks Ohad & Shay).
Nowadays with all of the blogs and other resources on the internet it seems that developers no longer bother to read books. I think that a book could supply a solid foundation and broad understanding that is hard to find when using a search engine as your primary knowledge base.
There are a few IronPython books available (such as IronPython in Action) , because I needed to learn Python as well I choose Dive Into Python as my beginner book of choice. Instead of walking you though the Python language it teaches by example - each chapter begins with a code example that shows an example of the chapter’s topic that is explained throughout the chapter. I found this way of teaching programming great, I didn’t get bored with trivial information and by the end of each chapter I could understand a complete code example written in Python.
Dive Into Python is freely available along with the source code of its examples so if you’re interested in learning Python you can read it online or download it PDF from the comfort of your own computer.
Tutorials and Source code
There is no shortage of examples featuring IronPython (and CPython) on the internet. I’ve found a few:
Hands on experience is crucial to learn a new programming language. Usually I choose a project and try to code it using that technology.
In this case I’ve decide to write a simple board game (with simple computer opponent) using IronPython.
I’ll write more about the project in related blog posts soon.
IDE (Integrated Development Environment)
After downloading IronPython from its CodePlex site I needed to set my development environment. Currently I’m using #Develop as my main IDE for C#/VB.NET home development and it seems like a good fit for IronPython as well. Although I’m still on the lookup for other tools, currently #Develop is good enough for me.
There is a project called IronPython studio I’ve considered using but it currently only supports IronPython v1 so I’ve decided against it.
That's it for now in the next blog post I’ll describe the project and my initial experience with IronPython.