I’v been looking into using DLR for my toy language, and I’m a bit confused. If .NET 4.0 has LINQ Expression trees, Dynamic Objects and the “dynamic” type, then do we really need the DLR anymore? What does the DLR provide that would make my life easier as a language developer
— Edit —-
Let me explain my question a bit better. The DLR project found on codeplex (dlr.codeplex.com), is there much of a need for that anymore? Are all the features of this DLR project rolled into .NET 4? Or is there something of value left to be found in DLR?
It doesn’t quite answer your question but I was very interested to read Jim Hugunin’s message about leaving Microsoft a while ago.
One of the things that he pointed out was that the DLR was the driver behind many of the nice advances we have in .Net 4.0 that you now say are the reason why you might not need the DLR anymore.
Edit: Link to the messsage – http://hugunin.net/microsoft_farewell.html
On the other hand, I think that the DynamicSite system is still something that’s quite valuable to have, whilst not necessarily something important to put in the CLR itself.
2nd edit: this is an interesting query really, I’ve just been looking at the docs on Codeplex. As you state and clarified, the .net 4.0 CLR does implement the kind of things that used to make the DLR special; Reading the DLR overview, I think that basically the idea is that things that are implemented with the DLR have the advantage of getting access to new features more quickly then waiting for a new version of the Framework.
This might be moot as they’ve not released a new version of the DLR for a while now!
Another possible advantage, but I admit I’ve not explored this properly, is that the AST in the DLR has more features: