Language Oriented

Save the Lemmings

Often I feel like the IT industry is like a huge population of lemmings that follow each other in circles and have a tendency to fall off cliffs.

Since IT departments play it safe by conforming to the mainstream technology of the day the battlefield of corporate competition remains squarely in the marketing department. IT departments of the world seem to have made a peace agreement that allows everyone to be equally as inefficient as each other.

This makes it extremely difficult for a paradigm shift in the global IT industry and goes some way to explain why programming hasn't really changed much over the last 20 years : we're still using general purpose text editors to edit the concrete syntax of a general purpose imperative programming language. Granted the object-orientation paradigm shift of the 90s was a significant improvement but it took fifteen years to move from the university campus to the commercial IT department!

It is the mission of a daring developer to challenge the status quo, encourage risk, and effect change in the IT industry; i.e. Save the lemmings.


Languages to the Rescue

"Language Oriented Programming" (LOP), or language workbench as the category of tools is called, is an emerging paradigm of software engineering that is really inticing because it promises to reduce the repetitive work we developers have to do and give us more time to focus on innovation in our software creations.


Getting Started

I suggest you read the seminal article by JetBrains CEO Sergey Dmitreiv : "Language Oriented Programming: The Next Programming Paradigm"


MPS

The Meta Programming System from JetBrains was released in beta recently and is in my opinion the best tool for LOP partly because it is based on a cell editor. Most of the others are based on the Eclipse platform and use free form text editing. The calculator tutorial is the best place to start learning MPS. The screencast was helpful to me initially.


References

Language Workbenches: The Killer-App for Domain Specific Languages? is a comparison of some of the main LOP tools today.


More to come

I will be adding more to this section as I get time to research these tools and feel the need to share any epiphanies.


© 2008 Keith Foster. "The Daring Developer" was created for people who share an insane excitement about advanced software engineering.