Google created a set of custom tag libraries and an editing tool, all this rely on back-end service through public API libraries. The construct is familiar enough, except that most organisations fall short of creating a solid toolkit correctly (the tag libraries and the development tooling part). Before I explain why I’m making a parallel with DSLs some preamble is in order.
DSL (Domain Specific Languages) is all the rage these days. The IT industry is addicted to acronyms, TLAs are the favourite (TLA = Three Letter Acronym). If you look beyond the hype, you’ll see that some of them do have value potential. One such TLA is DSL, companies on the fringe are focusing laser-sharp on it. The little i know about Intentional Software tells me that they’re very active practising DSL for their clients. It’s a smart move for any seriously ambitious company today, considering the amount of waste generated by IT. Just like people are worried about Global Warming, companies should be worried about Global IT Waste (GIW, my own TLA for today).
One of the rich tenets of DSL is that your teams would create a special-purpose language (a programming language a-la-IKEA if you like, but your very own) that befit the specific business you’re in, beautifully simple, flexible, functional, fit for purpose. Such language becomes the foundation for your programming toolset, hopefully shortening the turn-around time to produce valuable software while providing all the flexibility you’d ever want. Most of your focus would then be on building and maintaining glue-code, logic that binds your specific constructs with vendor solutions out there (vendor here include Free Open Source Software just the same). If you can imagine what I’m talking about here then this is the closest thing to software development nirvana.
Therein lies one of the problems, nirvana is not easy to reach therefore it’s just not trivial to execute DSL right. The clever move is to not so much see it as an end goal, but rather aiming for it as a continuous tuning exercise achieving greater levels of refinement steadily. Chances are that you and your organisation would reach your own nirvana and won’t even recognise it.
Microsoft has a lot of smart people that understood the potential for DSLs and they are cranking out tons of products and practices that help organisations with DSL. I am begining to see why they distanced themselves from the OMG’s UML evangelism, it’s a mind game that is best played with focus and purpose. It might not be very obvious to all today but I would bet that Microsoft’s efforts will ultimately achieve many of their goals [assuming they stay the course, not go revamping their frameworks and librairies every 15 months].
Really good DSL initiatives are set for the longer term, the value grows almost exponentially as the initiative matures. The reason is that it’s a tuning game, you don’t succeed in one step unless your business is simple or trivial. All of this is counter intuitive for many, most companies approach IT endeavours on a per project (hence per budget) basis and sometimes driven by middle management musical chairs. If you’re going to change executive direction/team every other year then there’s little point in adopting DSL. If you’re gullible product marketing would have you believe otherwise, fair enough, define “correctness”.
IT today has matured so much that really good programmers can achieve unheard of productivity. DSL works well for such people and the [preferably] stable organisations that employ them. If acronyms like BNF, LR, LALR sound strange to you then you’re probably not ready to seriously embrace DSL. Do yourself a favour, ignore DSL and your life would be easier. If you think that object modelling is enough to qualify what you’re doing as DSL then I’d say suit yourself.
One way to look at Google Mashup Editor is that they’ve created a kind of DSL so that folks could quickly create mashups with Google’s products and services. It’s likely to be addictive for those that try, it will make you think… So far I wasn’t buying too much into all the fuss suggesting that Google was challenging Microsoft. But Google has been steadily making many of the technical moves that makes me envy them. I have to give it to the analysts for their foresight, Google is on to something really big and they have the right approach to technology.
If you are one of those companies wondering why your IT teams struggle so much to deliver what you want, or that IT is “just not living up to your expectations”, I suggest you take a tour of Google Mashup Editor, find out about DSL as discussed in this context and tell me what you’ve learned. If you’ve read this and followed my advice I’d love to hear from you, right here. Go on then, I’m patient.