Lately I have been pretty obsessed with just how much the importance of languages is growing. Here are a few more thoughts on the subject.
A few years ago I was wishing for some executable extension to XML, but later I decided that that was a good example of "being careful about what you wish for".
:-)
With every passing day I become more and more anti XML as a "programming language". Everyone is pretty much in agreement that XML isn't for humans. Still, it's being used more and more in exactly that way... Two of my friends recently expressed much more interesting ideas regarding the problem I was looking to solve back then, namely sending around executable pieces between tiers.
First out is Ingemar Lundberg (who has just moved his blog BTW). He expressed a thought the other day that when we are working very hard to create as simple Domain Models as possible, does it really make sense to use a complicated language like C#? Wouldn't it be nice with a cleaner, simpler language especially suited for Domain Models? A simple language where subsets of the Domain Model could safely be transferred to the client for execution. It will be interesting to see the alternative that fills this hole. Will it be an existing or a new one?
A few weeks ago Kim Harding Christensen said something similar, but kind of opposite too. He was thinking about writing more generic services that could consume executable blocks from clients and thereby take away the focus of trying to create the "right" and static API for the services, which is often very hard in reality. The language he had in mind was Lisp since it would be pretty simple to validate the chunk of code so it would only do permitted actions. The capabilities of the service will be exposed as functions in the Lisp interpreter resulting in a DSL that is easy to use for the service requester while still having the full expressive power of a real programming language.