About a decade ago, the world of IT underwent a period of language creation hype. At the center of that hype was XML. The power attributed to XML stemmed in large part from the fact that it was not a language in the ordinary sense. It was a language for creating languages - known as schemas or DTDs - for any domain you liked: recipes, stock quotes, washing machine documentation, and so on.
Fast forward to today and the world of IT is embarking, I suspect, on a another period of language creation hype. This time, the hype epicenter is Ruby and the facilities it provides to create custom languages. The word "schema" now exits stage left and the acronym "DSL" (domain-specific language) enters stage right. As a language-oriented (as distinct to mathematically-oriented) IT person, I am as happy as a clam about this. I have got the popcorn, the gallon drum of soda and I'm settling into my easy-chair for what should be a fascinating show. The question on the game show is this: DSL or schema? Is the right answer, "DSL", "schema", "neither", "both" or the classic : "it depends"? Fingers on buzzers...
As an incurable predictor of IT futures, I also cannot help but predict the outcome. I think the answer is that all time classic "it depends". However, before the world settles on that answer, it will need to pass through a trough of disillusionment about DSLs. I think that trough will come soon. I think it will come hard and steep; I'm not sure that Ruby - an excellent general purpose programming language - will come out well at the and of it all. But, hey, I have been wrong before! Herewith is my reasoning. I welcome all constructive feedback and discussion. I have split the discussion into a number of necessarily overlapping areas...
1 - the inevitable language learning curve and when you need to climb it
Most successful general purpose programming languages of recent times have had a flexible verb/noun system and a fixed sentential form system. By that I mean that most common programming languages allow the creation of new nouns e.g., objects, variables, record structures and verbs e.g. functions, procedures. Object oriented programming languages allow the creation of verbs in the context of nouns: methods. However, for the most part, the sentential forms of most heretofore successful general purpose programing languages have been fixed. That is, if you need to repeat something; do something based on a condition; or decompose your program into manageable pieces; the language only provides a fixed set of sentential forms. You cannot roll your own.
Sign up for ITworld's Daily newsletter
Follow ITworld on Twitter @IT_world
Esther Schindler
If the comments are ugly, the code is ugly
claird
SVG a graphics format for 21st century
pasmith
Take Chrome OS for a test spin
Sandra Henry-Stocker
Solaris Tip: Have Your Files Changed Since Installation?
jfruh
Android fragments vs. the iPhone monolith
mikelgan
What Gizmodo missed about the Pro WX Wireless USB disk drive
Sidekick: The Good News & the Bad News
Either way you look at it Microsoft Data Center management did not follow standards or best practices in this failure. In which case it makes me wonder more about the outsourcing of corporate data much less personal data.
- mburton325
Join the conversation here
Quick, practical advice for IT pros. Made fresh daily.
Want to cash in on your IT savvy? Send your tip to tips@itworld.com. If we post it, we'll send you a $25 Amazon e-gift card.














DSL's
Sean sits back and thinks again.Enlightening. Thought provoking. I'm unsure if his assumption about the majority using IDE's is true, or perhaps its just that I am one of those grey haired types that still uses emacs
Pity it has to be surrounded by the glare and pop-ups of itworld
Yeah
I agree, I really wish these young-guns would stop trying to reinvent the wheel. We have a system that works, there is no need to go creating new things and thinking new thoughts. Experimentation is dangerous, especially in software. Do you think the Lunar Rover would have gone anywhere if it was powered by Ruby, no! Of course not! We have excellent tools built by an excellent company (Microsoft) they know what we should use and how we should use it. God bless america!Language workbenches
How does this fit with the notion of a language workbench that Fowler, among others, has proposed? In the Intentional Software demo, they show an example of electrical engineers creating circuit diagrams directly in the tool, which are then converted to a central metamodel.