Saturday, January 20, 2007

Languages are software too!

Most people focus their attention on the software engineering, and always neglect the language. They think that languages are something static, with no evolution.

This idea is pointed out by Jean-Marie Favre in "Languages evolve too! Changing the Software Time Scale":
"However, most academics still consider languages as immutable artefacts. Language/software coevolution issues are still neglected. Migration issues are however commonplace in software industry... It is therefore time to recognize that languages evolve too. Languages are integral parts of software products. Languages are software too. This paper surveys a few models of evolution taking decades and centuries as time-scales."
"Misconception: languages are immutable. While everybody agree that software architecture evolves, most academics still consider computer languages as if they were immutable artefacts. For instance most people consider “grammar evolution” and “grammar reverse engineering” as strange combination of words. They often argue that a grammar can be seen as a mathematical entity, and as such it is eternal."

So if we study software engineering, why not study "language engineering". This term was coined by Ralf Rammel: "Who needs a language engineer? Language engineers are into grammars, types and declarative programs; they seek to facilitate these concepts for the purpose of improving the practice of software development; they push forward language-engineering foundations inspired by practical needs."

Languages are pieces of software: they are designed, implemented, maintained, and they also evolve. So to think languages are "immutable artefacts" it's only naive.

No comments: