2007-10-18

JAOO, dag 2: Democratizing the Cloud (Erik Meijer)

Erik Meijer är arkitekt på Microsofts SQL Server Division och jobbar där med dataintegration i programmeringsspråk tillsammans med språkdesignteamen för Visual Basic och C#. På JAOO fick han den otacksamma uppgiften att väcka deltagarna efter måndagkvällens fest. Man skulle kunna tro att han psykedeliska t-shirt - den innehöll förmodligen alla färger människan kan uppfatta och sedan ytterligare några - var ett knep han tog till för att lyckas, men han verkar jämt gå runt i den, så jag vet inte riktigt. Nåväl, tröjan till trots lyckades han inte riktigt med sin uppgift; det var svårt att se den röda tråden i hans keynote och med tanke på att hinkarna vid utgången innehöll många röda och gula lappar verkar det inte gälla bara mig (på JAOO utvärderar man sessionerna direkt vid utgången genom att lägga en grön, gul eller röd lapp i en hink).

Föredragets titel var "Democratizing the Cloud" och redan där verkade han tappa många åhörare som tydligen aldrig sett skisser där molnet används för att illustrera Internet. Den utmaning Meijer ville ta itu med var hur man löser "the Multi-Tier Application Problem"; hur kan vi, i en allt mer distribuerad och serviceorienterad värld, underlätta utvecklingen av distribuerade applikationer? Ja, inte genom att uppfinna något nytt i alla fall ("Stop inventing stuff!"). Vi bör istället göra det möjligt att återanvända gamla beprövade metoder: "stretch the current single-tier client applications design patterns to cover the Cloud". Det innebär att vi vill avvakta med oåterkalleliga beslut om våra distribuerade applikationer till sista möjliga anvsvarsfulla ögonblick (jmf YAGNI). Om Meijer får som han vill utvecklar vi snart våra applikationer utan en tanke på om de ska vara distribuerade eller ej och om behovet uppstår kan vi relativt enkelt genom successiva, verktygsstödda refaktoriseringar partitionera om den till en distribuerad flerskiktad applikation.

Det ska dessutom gå att köra applikationerna på vilken server eller klient som helst, utan att behöva ladda ned annat än applikationskoden. Ett sätt att åstadkomma detta är att utnyttja JavaScript. Meijers team har implementerat en inbäddning av MSIL i JavaScript för just detta syfte. Han visade bland annat hur de med hjälp av JavaScript och CSS gjort det möjligt att rendera 3D-grafik i alla webbläsare med stöd för JavaScript.

Den teknik Meijer talade om är inte alls långt borta, det är nämligen LINQ 2.0. Det verkar onekligen intressant och Meijer & Co har säkert tänkt igenom modellen noga. Jag kan dock inte skaka av mig min skepsis till själva grundtanken: är det verkligen klokt att använda samma programmeringsmodell för distribuerade applikationer som för ickedistribuerade? Abstraherar man inte bort en skillnad som det i själva verket ofta är högst relevant att hänsyn till? (Se t.ex. Martin Fowlers First Law of Distributed Object Design.) Det ska bli intressant att se om och hur Microsoft besvarar dessa frågor i LINQ 2.0.

Meijers webbplats har en hel del intressant material om LINQ 2.0 och de ämnen han berörde i sin keynote. En bra introduktion för den som vill veta mer är just "LINQ 2.0: Democratizing the Cloud" (PDF).

0 kommentar(er):