April, 2011

Apr 11

F# and the DLR at Dev Day for NSWC Dahlgren

Just yesterday I gave a presentation on F# and the DLR for the Naval Surface Warfare Center. Many thanks to Kevin Hazzard and Chris Bowen for recommending me. It was a fantastic opportunity to speak on the benefits of F# to an entirely new audience and I learned a few things about the DLR along the way.

Despite disliking dynamic languages in practice because of their lack of safety, I must admit that the DLR allows you to do quite a few very interesting things.

First, you can embed DLR language code right into html and so build Silverlight applications with no backing assembly. This is quite interesting as it makes the web development story for Silverlight much more attractive. Read more about this feature on the DLR section of the Silverlight Website.

Second, it’s quite easy to embed DLR languages into your application. With just about three lines of code I was able to build a IronPython query window right into a ListView. The possibilities for live debugging and building query DSLs here are huge.

Finally, the DLR is a great platform for building your own DSL. You need only to Parse and Lex your way to a DLR abstract syntax tree, sprinkle in a few rules, and you’ve got your own language. This is also where I see the marriage of F# and the DLR as F# is an ideal language to do this in. For an example of a really nice implementation of a DLR language in F#, take a look at IronJS.

Click here to download my slides, as well as the code used in this presentation.