Programming as Language Extension…

As the popularity of things like Domain Driven Design, DSLs, Language Workbenches etc., increases, I am reminded of what one of my professors said some 15 or so years ago – that all programming is actually language extension.

We start at the lowest-level with our implementation language and we gradually build in concepts that extend it towards the highest-level which is the application domain. Now, obviously, in a non-language workbench world, we are bound by the syntax of the implementation language (and hence our extensions are in the form of types, functions etc) but we can still see the extensions as building layers of new “languages” until the final language that can (in theory) be shown (and explained) to domain expert.

For me, the key is that, DSL or no-DSL, the outermost layer should preferably be readable by the domain-expert, and even better, be writeable too ;^)

Learning Ruby…

We’re just starting a project that’s going to be using Ruby on Rails and so I figured learning Ruby might come in handy ;^) Now, I’m not a language “bigot” in any sense of the word – “Horses, for courses” is my motto, so if you are a die-hard Ruby fan, don’t be offended if any of my posts on this topic seem critical – I’m just telling it like I see it as an experienced developer coming to a new language, and I am not trying to promote any other language by doing so. I can quite easily find just as many “disappointing” features of pretty much any language ;^)

Oh, and as I’m a newbie to the language feel free to correct me when I’ve misunderstood something!