Visual DSLs

Link. July 13, 2007. Comments [2]. Posted in: .NET | Architecture

Scott Bellware wrote yesterday on disambiguating fluent interfaces (aka APIs) from domain-specific languages. Rant aside it's an interesting read. Something, however, gave me a chuckle: Scott says:

"At some point in the near future, Microsoft will tell the .NET mainstream that DSL's are visual, that they are drag-and-drop, and that they require a new plug-in to Visual Studio in order to make them and use them."

Hummmm..... sorry to say this Scott, but they already did a couple of years ago :-). I think it started with the whole Software Factories [1] idea that Microsoft pushed some time ago.

I must say, though, that I don't hold any grudges to the idea of Visual DSLs. In fact, they can be very useful tools both to create and visualize software. The problem appears when a) they are not the most productive way of working either because of limitations in the visual language itself, or b) because of poor implementation. The Windows Workflow Foundation Designer strikes me as an example of a concept where the visual thing works very well, though it has an unfortunate implementation (it's slow as molasses, almost unbearable to use at times!).

For many of these tools, what I'd really like to have is the best of both worlds: Having a visual experience can be very useful, but having a productive, effective and efficient textual dsl is, to me, a core requirement. Despite what some people might think, writing text is still a far more efficient means of writing software if you have the right language at your disposal.

[1] I think the Software Factories idea has some good merits as a conceptual concept and vision, but it was unfortunately named (and I believe the term has made substantial damage to our software industry, by the way).



Monday, July 16, 2007 2:27:45 AM (SA Pacific Standard Time, UTC-05:00)
Hi Thomas,

The two problems of visual DSLs you mentioned are not necessarily valid at all. Why? In most successfull cases of visual DSLs (see e.g. http://www.dsmforum.org/cases.html) the languages are built by the company that directly uses them. They can therefore fully control the language structure and code generation. So if you find a limitation in the language you (or an experienced developer in your company) can fix it. With proper tooling you can then share the modified language and update automatically older models so that other developers just continue their work.

Juha-Pekka

PS. When it comes to the name of Software Factories I agree. In addition the term was already used by Japanese during 80's for a bit different thing. Instead OOPSLA has been running workshops since 2001 with the name Domain-Specific Modeling (http://www.dsmforum.org/DSMworkshops.html).
Monday, July 16, 2007 8:14:56 AM (SA Pacific Standard Time, UTC-05:00)
Juha,
I'm not saying the problems could not be fixed; indeed they can. What I'm saying is that even with the sample problems I mentioned fixed, I still believe visual DSLs are just one way to represent the language, and it's not necessarily the most productive one in all situations. I personally find text-driven languages to be more productive in the long run (all the more so when coupled with good visual alternatives), and they also have the added benefit of being able to support all the rich tools we already have in the development world for text manipulation (like decent diff tools, which I find an essential requirement).
Comments are closed.

About

Tomas Restrepo is co-founder of devdeo. His interests include .NET, Connected Systems, PowerShell and, lately, dynamic programming languages. More...

email: tomas@winterdom.com
msn: tomasr@passport.com
twitter: tomas_restrepo

Technorati Profile

devdeo logo

View my profile on LinkedIn

MVP logo

Syndicate

Ads


Links

Categories

Statistics

Total Posts: 1006
This Year: 76
This Month: 7
This Week: 0
Comments: 771

Blogroll

Post Archive

Other

Copyright © 2002-2008, Tomas Restrepo.

Powered by: newtelligence dasBlog 1.9.7174.0

Sign In