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.