Language Oriented Programming
About eight months ago, I wrote about a major paradigm shift in programming within the next three years. This shift would mark the emergence of graphical source code editors and allow developers to manipulate the deep structure of code directly.
There’s been major discussion in the blogosphere recently on this topic. Mark Levinson links to me and commented on Why are programs still edited as text?, Programs still edit as text redux, and Extensible programming. Apparently, structured editors have happened in the past in Lisp community, and the coming paradigm shift is really a movement “back to the future.”
As it looks now, there seems to be at least three major players pursuing this ideal—Intentional Software, JetBrains, and Xactium. Sergey Dmitriev, CEO of JetBrains, apparently is working on Language Oriented Programming at JetBrains and includes interesting pictures of system called MSP. In his personal website, he maintains a number of links related to the new programming paradigm.
Even in Whidbey, there are signs of movement in this area. VS 2005 introduces a graphical class designer, which is linked directly to code. The manipulation of the code, however, from the designer is not very granular; operations and visualizations are limited to level of type and member declarations. The designer does merge run-time and compile-time by allowing the construction of object instances and execution of member functions using the Object Test Bench. The designer plays a central role with Microsoft Business Frameworks and with web services.
Microsoft is also pursuing a related development, Domain Specific Languages (DSLs), which is part of its new Software Factories strategy.