Ok, I was totally ready to dismiss Oslo out of hand as yet another “Visual Programming” silver bullet wannabe from Microsoft that helps teams quickly create unmaintainable code, but I saw this little line in Doug Purdy’s post on Oslo:
A language that helps people create and use textual domain-specific
languages and data models
Now I’m paying attention. Attending PDC certainly isn’t within my budget, so you folks that are going, please blog it out. I’d really love to hear if Oslo has some capabilities similar to JetBrains MPS product, but for .Net.
I’m about to do a total reboot of my StoryTeller project, but this time I’m ready to ditch the FitnesseDotNet engine* altogether and replace it with something from scratch. I love the concept of Fit, but the implementation just flat out sucks in complex usage. What I do love about Fit at its best is the ability to create External DSL’s for testing specifications of your system (largely using the DoFixture). I want to use External DSL’s for testing because they are much more readable and intention revealing than writing the test out in normal code, even with tools like MSpec or RSpec. The problem is that building an External DSL is relatively expensive compared to an internal DSL or just using a “push button” API for testing (I have heard other people say that it’s easy, but I’m dubious). With Fit testing the problem is both in authoring the testing DSL because the DoFixture and the engine itself is limited in its expressiveness, and also because writing and editing the tests in Fitnesse Wiki format or HTML is time consuming and error prone. What I’d like to do with StoryTeller is create a poor man’s language workbench specifically for the creation and editing of external DSL’s. Specifically, I want a sort of intellisense or guided editing for the testing languages I would be creating with StoryTeller. I’ll be interested to see if the Oslo tooling could help in that regard.
In the meantime, I’m going to continue on my StoryTeller reboot, and try to get some help from an F# guru for some language parsing help.