Saturday, 9 February 2008

On Microsoft and Open Source

OK, I'm not really what you can call a Microsoft fan. Not really... But everyday I encounter new evidences that I'm right. What bothers me is that some people have a tendency to take MS marketing "as it is", and it is often not completely accurate, to say the least.

A new example: The Dynamic Language Runtime.
It is an ongoing effort to ease implementation of dynamic languages (like Python, Ruby, ...) on top of the .NET Framework. When you read articles on the web (for example, see here), you are under the impression that it is up and running, but... the code currently lives in the IronPython repository and the developers plan to release the first 1.0 version by the end of the year. I'm not saying that this project is not exciting (hmm, i'm not excited...), but people should wait a little before writing things like Microsoft developers have already been able to build implementations of Python, Ruby, Javascript, and Visual Basic that can run on the DLR, when these are planned for the end of the year (IronPython), currently in the pre-alpha stage (IronRuby), or planned for the future (VBx).

Update February 10: After a discussion with fuzzyman, I feel I need to update this a little. I said that I needed to see successful non-Microsoft projects built on top of DLR to say that DLR have succeeded. He pointed that there were more than Microsoft projects on the go, for example IronLUA, or IronScheme. I must agree that people are expecting a lot from the DLR, and starting to use it in their projects, but neither IronLUA or IronScheme are close to completion yet (which is normal, considering that they still have a lot to do to implement their respective languages, and also that the DLR API is still far from stable).

This is not only a formal discussion for me, because the idea behind the DLR is that it is possible to abstract AST to be able to use them in ANY dynamic language. I am very coutious because this very same assumption was made before with the CLR, which was said to be really language-agnostic, and (contrary to the JVM) could be used to implement ANY language. It turned out that it was no more the case for .NET than for Java (and no less, I agree), and languages built on top of CLR were often slightly different from their reference. So, just one last word for DLR: Wait and see... I can be wrong, but if we go back to the beginning, we are far from saying that it's done.


Fuzzyman said...

Well - the *final* version of IronPython 2 is due later this year, but people have already been using it for about a year. IronPython 1 has been usable for nearly two years of course.

Managed JScript ships with Silverlight 1.1 and both IronRuby and Vbx have been demoed running on the DLR. They may not all be RTM (and IronRuby really is still alpha or pre-alpha) - but they are all well beyond proof of concept and into reality... :-)

mithrandir said...

What I was saying was not against IronPython, but against some tendency in the Microsoft/.NET world to declare things achieved when they are just beginning. For me, it is not enough to have a state of the DLR working inside IronPython to have something useful "in the wild". As I understand it, the DLR concept is about easing implementations of dynamic languages on top of the CLR, but so far only Microsoft projects use it.

I agree that in the future it will really allow to ease dynamic languages implementations, but it is very ambitious: it is making the assumption that it is possible to share a common ground for AST between very different languages. This may be true, but a similar assumption was made with the CLR and it failed (a lot of implementations ended being slightly different from their reference). As you see, I don't really think it will deloiver to its promise, but even if I know I may be wrong, it will need to be "under fire" (have more languages, and some languages not develped bny Microsoft teams) to be built on it to prove it works (I have no doubt it's working OK with IronPython, but it's just its origin).

For the moment, VBx is far from being released, and Silverlight is still alpha. I will wait (with interest)

Fuzzyman said...

Silverlight 2 should come out of Alpha in less than a month...

Other people are already building languages on top of the DLR - Vista Smalltalk, IronScheme and IronLua for example (none of which are Microsoft projects).

Perfumes said...

Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the Perfume, I hope you enjoy. The address is A hug.