Dynamic Languages and the Common Language Runtime (CLR)


Hi!  I’ve just finished my second week working at Microsoft. Now that I’m starting to settle in I can get to the fun work with the CLR and dynamic languages.  I’ve been fascinated by the power of programming languages and tools for many years, and I’ve built a number of tools in this space.  I’m the creator of Jython, a co-designer of AspectJ and the original lead for Numeric Python.  You can read more about these projects starting from my personal web site.

Over the past year, I’ve become a reluctant convert to the CLR.  My initial plan was to do a little work and then write a short pithy article called, “Why .NET is a terrible platform for dynamic languages”. My plans changed when I found the CLR to be an excellent target for the highly dynamic Python language. Since then I’ve spent much of my spare time working on the development of IronPython.  The more time that I’ve spent with the CLR, the more excited I’ve become about its potential.  With my new position at Microsoft I have the pleasure of continuing to explore and extend this platform full-time surrounded by smart people who have a deep understanding of the CLR.

I announced the first public release of IronPython-0.6 during my talk at OSCon a couple of weeks ago.  The conference and the talk were great fun.  Before my talk at OSCon, IronPython had only ever run on my personal laptop under Windows XP.  Before my talk was even finished, Edd Dumbill had installed and run it successfully under Linux.  An hour later out in the halls I met several more people who had IronPython running successfully on Linux as well as two people who were running it under Mac OS X.  None of these people needed to make any modifications or even do a recompile to get it working on their systems.  Everyone could run exactly the same binary that I’d built using Visual Studio .Net on Win XP.  Of course, this is exactly how the CLR is supposed to work; nevertheless, it’s always a pleasant surprise when things work as advertised.

I’d like to thank all the people who’ve given me such positive feedback both about my IronPython announcement and my move to MS. 

This blog is going to give me an easy place to talk about technical issues with implementing languages for the CLR and about philosophical issues around how and where dynamic languages are most useful.  I’ve just started my new job and still have to work out my schedule and commitments, so don’t expect any comments from me about a next release for a little while.  Coming soon will be an entry similar to one of the live demos I gave during OSCon to show a little bit more about how IronPython can interact with interesting CLR libraries.


Comments (15)

  1. Can’t wait to see your blog:)

  2. Great to see you blogging here. Looking forward to your posts!

  3. Luis says:

    Hi, I just wanted to ask you a question regarding the future development of ironpython:

    Right now there’s a project for building a static type inference for Python called Starkiller, which is supposed to be released soon.

    I’d like to know if you are considering implementing this type of technology that could, at least theoretically, improve dynamic languages performance up to near c speed.

    Do you think is posible that some day, dynamic languages will be as fast as compiled ones?

  4. paul says:

    It’s an exciting place to be, at the center of the CLR.

  5. Redo says:

    Congratulation for this new job, good continuation in your research.

    Information is relayed French-speaking side;)

    http://blogs.developpeur.org/redo/archive/2004/08/18/2313.aspx

    Rédo

    Le .NET, Que du Bonheur !!!

    MVP ASP.NET

  6. Guy Provost says:

    Man, glad to see this kind of activity and honesty! Just hope that others could put their religious zeal aside and work with others… Nice blog, keep it on!

  7. It’s been a week. No new posts? :) Will IronPython have a C# style GUI builder? That would be a product I’d buy it without hesitation.

  8. Slightly off-topic? Is there a UseNet or phpBB forum for the discussion of IronPython? Perhaps a listserv mailing list? I don’t want to abuse the comment system with discussion questions.

    If there isn’t I’d be glad to set up and host a phpBB forum for it. I can be reached by sending mail to my first name at the web site domain name in my comment URL.

    Thanks.

  9. Jim Hugunin says:

    Thanks for the support.

    I’ve just put up my promised second post. I’m aiming for one post per week. We’ll see how that goes.

    There is a mailing list that you should be able to easily find off of ironpython.com. If it’s too hard to find, let me know and I can give you a specific URL.

  10. Jim Hugunin says:

    I have high hopes for the combination of static type inference and dynamic languages in the future. I talked about this 6 years ago at a Python conference in San Jose. The possible performance wins are huge. See the slides here – http://www.jython.org/jpython-talk-1.ppt – the interesting section starts with "Compiler Design".

    Another less talked benefit of static analysis is the checking performed by a tool like PyChecker which does some static analysis to find bugs in Python programs.

  11. Jim,

    I found it with no problem. Just subscribed, thanks! BTW, the URL for my posts is coming up "http://http/" because the first time I posted I had a mistake in the Url field (I had 3 t’s in "htttp").

  12. As I work to absorb the raft of recent announcements (mostly around MIX07), I discovered the DLR – or

  13. Martin Maly says:

    The story of the Dynamic Language Runtime starts in early 2004. Jim Hugunin then decided to spend few