Democratizing the Cloud
InfoQ posted a very interesting video from the ‘Democratizing the Cloud’ presentation by Erik Meijer in QCon.
Democratizing the cloud means “Make easier to program distributed applications”. He wants us to build a single tier app and publish it in multiple tiers.
He describes an IL to JavaScript compiler (like Script#) and a MapReduce implementation for LinQ. You can then write C# code and later decide to run it in the browser, or specify a query that today executes over a SQL database but when your application is successful and is used by millions of users, scale it over a cluster of distributed applications servers using MapReduce.
Of course that we’d love to have that.
The only element that I don’t find consistent with his vision is the ‘refactoring’ he needs to split the applications in tiers. Up to then, all the magic was performed by the compilers and runtimes, but for this one we need different code, so once the decision is made, it cannot be changed. He talks about ‘making irreversible decisions at the last responsible moment’. The problem is to agree when that moment is ;). Things like ‘code webservices as if they are stateful’ probably are a heresy for some people.
This kind of functionality has only been provided by code generation tools, where you generate multiple tiers or single tier applications from the same specification, but never at the language level.
He also has some interesting opinions on SQL and DSLs.