archives

DSLs: How and When?

There's a discussion on Artima about domain-specific language development. Actually, there isn't too much discussion (yet), but there's a link to this ACM Computing Survey article (PDF), which looks quite good. It has a survey of DSL use cases, implementation techniques, etc., and explores some reasons to choose whether to implement a new DSL.

Visualisable Languages

What is the potential of visualisable languages?

A visualisable language is one whose code is written as text,but the interpreter can visualise(in 2D/3D graphic medium) the execution details of the code with the semantics of the language intact.

A feature like this will make it a lot easier to write,learn(from examples) and maintain software. If the visualisation can be done right, i see a lot of advantages of such an approach.Allowing cutomisation of the visualisation and advanced user interaction will be a bonus for such a language.

I also feel that this approach is better than Visual Programming Languages as almost all of them lack the expressive power compared to text.Infact, its is the best of both worlds(textual and graphical).

I also feel that visualisation caters well to everyone.It helps systems designed badly (tightly coupled systems being an example) stay in game because they can be managed even if it is with great difficulty.At the same time it allows good designs to prosper faster because it will be easy for people to understand the design and (re)use it.

I also feel that it will help manage complexity. From my understanding people define something as complex, when they do not understand it well.In software, we define something as complex, when we do not know what the system is exactly doing or cannot predict what the system would do given a set of parameters.Going by this definition of complexity,visualisation helps reduce complexity because it tells us what the system is exactly doing.

Comments on this issue are welcome.Also,Did someone already try this?