
Kurrning i ottan och en tripple shot-latte senare sitter jag och försöker hålla mig vaken på morgonflyget ner till Malmö. Taxichauffören är inte billigast, men slutar aldrig prata. Fråga mig om hur smutsig taxiverksamheten är i Malmö, så kan jag numera nästan allt. När jag kliver ur är det nära att jag blåser bort, trots varningar från samma chaufför blir jag helt tagen av hur mycket det blåser här nere.

Oracle föregår med samma goda exempel som förra året (då jag bara hörde om det ryktesvägen) genom att erbjuda riktigt underbart baristakaffe som alternativ till de stora kaffetunnorna med halvfärskt bryggkaffe.
Marc Lesser – Accomplishing More By Doing Less
Öppningen av konferensen ackompanjeras av en serie missljud i bakgrunden. Det låter som om någon försöker lära sig att spela fiol. Jag tror det är vinden som spökar. Det blir extra tydligt eftersom konferensens första keynote är Zen-gurun Marc Lesser som inleder med att låta alla sitta helt tysta och inte göra någonting under 60 sekunder.
Marc pratar om att få mer gjort genom att göra mindre och går igenom "the Less Manifesto" som handlar om att hitta sätt att eliminera problem som uppstår på grund av fruktan, antaganden, distraktioner, motstånd och upptagenhet (fritt översatt).
Varje session utvärderas genom att man efteråt får lägga en röd, gul eller grön lapp i en korg. Röd lap för
under förväntan, gul för
som förväntat och grön för
över förväntan. Marc får tyvärr en röd lapp av mig.
Ioke – A Folding Language
Ola Bini tar oss vidare in i Iokes, för mig okända, värld. Ioke är ett experiment som han roat sig med för att utforska vad som händer om man lägger allt annat åt sidan och bara fokuserar på hur expressivt ett språk kan bli. Det ska i första hand kommunicera med utvecklarna, inte kompilatorn. Han kör växelvis snygga bilder varvat med live-kodexempel i Emacs. Klassisk Ola-stil.
Några grunder jag tar med mig om Ioke:
- Språket är utvecklat enligt TDD
- Inga globala (eller lokala) scope
- Multipelt arv möjligt, i runtime
- Inga nyckelord gör det möjligt att prata svenska i koden (eller mandarin som Ola demonstrerade)
- Conditions används istället för Exceptions och ger exempelvis möjlighet att dynamiskt försöka laga något som gått sönder (jämför med Java som dör med en stacktrace)
JavaScript: The Good Parts
Evangelisten som gett JavaScript en pånyttfödelse, Douglas Crockford, var mycket inspirerande att lyssna på. Han menar inledningsvis att JavaScript är världens mest populära (och impopulära) programmeringsspråk. Eftersom det kan exekveras i nästan alla webbläsare kan du nå en miljardpublik. Av olika anledningar är det också språket som alla använder utan att bry sig om att lära sig det först, vilket bidrar till dess oförtjänt dåliga rykte.
Dagens första asgarv fick jag när Douglas pratade om
eval: ”If you find yourself wanting to use eval, step away from the machine... (konstpaus) and maybe never come back”.
Det viktigaste han ville förmedla till oss var att förstå hur closures fungerar i allmänhet och i JavaScript i synnerhet. Exempelvis:
var myObject = function() {
var privateVar = 'This variable is private!';
return {
showPrivateVar : function () {
alert(privateVar);
}
}
}();
I det här fallet innehåller inte
myObject en anonym funktion utan det den faktiskt returnerar - ett funktionsobjekt. Ett funktionsobjekt består av en funktion samt en referens till det scope den skapades i. Detta gör att
privateVar blir tillgänglig när vi anropar
showPrivateVar, men inte i det globala scopet. Faktum är att det enda som hamnar i det globala scopet i det här fallet är
myObject.
Douglas är troligen litet påverkad av tidsskillnaden eftersom han avslutar med ”Thank you and good night!”.
Lunch!