sábado, octubre 28, 2006

Steven Kelly, DSL, y Charles Simonyi

Steven Kelly, participante en OOPSLA como miembro de MetaCase, comenta a Simonyi, quien comenta a las herramientas DSL:
He asked a good question:
"If DSLs are so useful, and so incredibly efficient, and have been around for so long, why isn't everybody already programming this way?" He gave three answers:

* building good languages is hard
* designing parsable languages can be hard
* building editors for the language is expensive"
Responde Kelly:
I'd agree with the first, but graphical DSMs and a meta-tool like MetaEdit+ or GME have solved the latter two problems over ten years ago. One of the questions at the end pointed this out to him. For the first, good tools can help, but the real answer is simply that building a language is a task for an expert developer. It's hard even then, but it's doable and is the best possible use of the expert's knowledge and skills.
Kelly discute también el enfoque de Simonyi para su propio desarrollo:
Intentional have changed the name of their future product to "Domain Workbench", borrowing consciously from Martin Fowler's term "Language Workbench" (and you can look at MetaEdit+ Method Workbench for a possible hint of where the lovable jackal got that particular piece of carrion). The main focus is on providing different views on the same program -- different projections of the same tree-like representation of the program in their repository.
I'm all for different representations (my first work on MetaEdit+ was building the Matrix Editor). But Intentional's idea is to be able to switch between different representations on the fly, and that's not a good idea. The human brain pays a significant cost each time the format shifts in that way -- just like switching between two spoken languages. Additionally, we build up maps in our mind of our code, and automatically laid out code breaks some of those maps -- even more so if you switch between several different representations.
Sobre Metacase: Metaedit+

No hay comentarios.: