Today I gave a TechTalk at Google Mountain View about "Linguistic Abstraction for the Web".
Abstract Our programming languages have been developed for the single machine programming model, while our current computing environment is distributed and parallel. For example, web applications are programs that run on three different machines, client, server, and database. This results in boilerplate code for encoding communication between layers, and it leads to polyglot programming with limited cross language consistency checking, leading to late detection of failures.
Domain-specific languages (DSLs) address these problems by providing abstractions and notations that allow direct and understandable expression of domain concepts instead of encoding these in a lower level programming language. Since DSLs are typically used by a smaller audience, efficient design and implementation of DSLs is crucial to make introduction possible at all. To enable software engineers to effectively design, implement, and apply domain-specific languages, we have developed the Spoofax Language Workbench, an integrated development environment (IDE) for interactive definition for languages and their IDEs based on declarative language definitions. Spoofax supports editing of language definitions and use of editors generated from those definitions in the same environment.
In the presentation, I will show how the use of languages such as WebDSL and Mobl greatly simplifies software development, and how a language workbench such as Spoofax brings language design and development into reach of software developers.