Danny's Tech: Where West and East Intersect

Monday, December 04, 2006

UPL: Proposal for universal programming language

The problem with programming today is that all languages are so narrowly focused on their task that you end up with all kinds of languages from scripting languages (most programming is scripting be it Excel programming or web programming like PHP or Ruby) to architecture/design languages like UML to database languages like SQL or OQL to data structure languages like XML.

The problem is that computer languages have one level of abstraction and one way of looking through the computer. There is no language today that has both low level syntax and high level syntax. That is, you cannot write assembly code with UML. Nor does the C programming language have the ability to abstract higher level concepts other than creating functions and libraries (the later is OS imposed abstraction, not inherent part of the language per se).

There is one company looking into the matter (started as Microsoft research) and that's Intentional Software. (Actually, I kind of touched on it with "Metaprogramming" but Fowler's "Language Workbenches: The Killer-App for Domain Specific Languages?" gives a detailed and better overview.)

How is my UPL better? That's something I'll be exploring over the months ahead!