Strangeloop 2011 nl

Door YopY op donderdag 22 september 2011 20:11 - Reacties (3)
Categorie: -, Views: 4.483

Zoals sommigen van jullie (voornamelijk Devschuurders) misschien al weten was ik de afgelopen paar dagen bij de Strange Loop conferentie in Saint Louis, Missouri. Deze conferentie begint langzaam uit te groeien tot dť software development conferentie, ook al bestaat hij pas sinds 2009. De conferentie is gebouwd op basis van een aantal principes, samengevat:

* Geen marketing. Keynotes worden niet verkocht aan sponsors.
* Technologie, geen proces. Geen presentaties over agile of test-driven development of wat dan ook, ook al zijn het koele onderwerpen op zich.

En zo nog een paar punten. Heel kort samengevat: Strange Loop is cool, zeker als je naar de lijst van onderwerpen die ter sprake kwamen kijkt. Trends die men bij deze conferentie tegenkomt zijn vooral moderne talen, functioneel programmeren en alles wat daarbij komt, mobile- en web development, NoSQL en nieuwe technologieŽn.

Zelf was ik er met vier van mijn collega's van Xebia, waar de software-development afdeling zeker grote interesse heeft in nieuwe technologieŽn en uitdagingen - met andere woorden, alles wat er bij Strangeloop ter sprake komt.

Ik ben van plan om alles wat ik bij deze conferentie tegengekomen ben (en wat ik gemist heb) te verwerken in een serie blogposts, lang en kort. Mogelijk ga ik weer een eigen Wordpress hiervoor opzetten - in mijn ervaring geeft dat (zeker op de langere duur) toch wat meer exposure dan Tweakblogs (no offense).

In ieder geval. De conferentie duurde twee dagen, drie als je zondag meerekent, en had circa 900 deelnemers, grotendeels uit de VS.

Op zondag waren er een aantal optionŽle workshops: Clojure, Erlang, Machine Learning, Node.js, Scala, Android, Git en HTML5 in het eerste blok, met Haskell, Django, Emacs en jQuery als extra onderwerpen in het tweede blok. Aangezien ik op het moment voor mijn werk met een Scala server-side applicatie bezig ben heb ik ervoor gekozen om mijn Scala-kennis uit te diepen door middel van de Scala Koans workshop, georganiseerd door Dianne Marsh (alhoewel ze de Koans niet uitgevonden heeft, als ik het goed heb). De Scala Koans is effectief een 'fill in the blanks' testsuite, waarbij je door middel van een set aan unit tests langzaamaan geÔntroduceerd wordt in Scala. Als je al wat basiskennis hebt van Scala zijn de Koans een ideale tool om dieper in de taal te geraken.

Zelf had ik die dag geen workshops meer ingepland, dus zijn we de stad ingegaan. St. Louis is eigenlijk best wel een enge stad - na 1950 is er veel geÔnvesteerd in het centrum van de stad, grote flatgebouwen / wolkenkrabbers, 15-verdiepingen-hoge parkeergarages, maar het is meer een soort van spookstad, er werken lang niet zoveel mensen als je wel zou verwachten. De stad zelf vond ik niet heel erg spannend, om eerlijk te zijn. Het nationale monument, het Jefferson National Expansion Memorial met als centerpiece de 200-meter hoge Gateway Arch is natuurlijk wel imposant, zeker als je nagaat dat je naar de top kunt reizen in een tram/lift die niet mis zou staan in een claustrofobische horrorfilm.

Op dag #2 was er een keynote van Erik Meijer die een verhaal hield over big data en nog wat andere onderwerpen. Ik ben niet helemaal zeker wat het precieze punt was van zijn keynote, anders dan het (stiekem) welbekende feit dat object-relational mappers (mapping) eigenlijk best wel raar is. Ik zal nog eens de video van zijn keynote na moeten kijken.

Na de keynote ging ik naar Neal Ford's presentatie getiteld 'Functional Thinking', een nette introductie vanuit klassiek / iteratief programmeren naar functioneel programmeren, waar hij een stuk(je) code refactord van een object met state en functies met tussenliggende variabelen naar iets puur functioneels. Vervolgens geeft hij een introductie naar de Functional Java library en legt hij uit hoe bijvoorbeeld Fold werkt. Een goeie introductie in functioneel programmeren, al zeg ik het zelf, alhoewel hij de voor- en nadelen van functioneel programmeren niet echt uitlegt - alhoewel dat natuurlijk een onderwerp op zich is.

De tweede presentatie was van Daniel Spiewak, een Scala-enthousiast en zeer enthousiast en energieke spreker. Hij had een presentatie over functionele datastructuren, een ietwat hooggegrepen onderwerp, maar ik vond het best goed te volgen. Hij begint met de aloude linked list die met een fold (zie boven) heel goed te benaderen is. Van hieruit ging hij naar wat hij noemde de "Banker's Queue", een queue-implementatie op basis van twee linked lists.

Dat evolueerde door naar red/black trees om uiteindelijk uit te komen bij een... volgens mij heette het een bitmap vector tree, wiens performance bij random access op een set van 2 miljard entries (maximale waarde van een int) beter was dan een arraylist, iets met betere CPU cache hits oid. ik moet zijn presentatie eens opzoeken. Een follow-up post hiervan zal een lijst geven van links naar alle video's van de presentaties, zeker de moeite waard denk ik.

Post wordt een beetje lang, denk ik ;). Na de lunch (broodje met heel erg veel vlees, chips en nog wat) kregen we een praatje van Scott Chacon, Git figuur, werkt bij Github, wrote the book, over de drie trees binnen Git (file system, staging en commit oid). Wel interresant als je net iets meer van Git wilt weten buiten hoe je iets commit.

In hetzelfde straatje valt het praatje "Vim: From Essentials to Mastery" van Bill Odom, dat probeert de vele features van Vim te introduceren bij de gebruiker. Het probleem met Vim is echter dat je het niet met een presentatie van ~50 minuten kunt leren - je moet het gewoon doen. Vim blijft lastig, vindt ik. Ik had deze post eigenlijk in Vim moeten schrijven, maar vooruit ;).

De laatste presentatie waar ik heen ging was "Actor Integration Patterns" van Dale Schumacher... maar dat is toch nog wat te hoog gegrepen voor mij. De presentatie was best wel droge stof, ook al had hij een leuke visualisatietool voor actor interacties (gemaakt in Processing).

De dag werd afgesloten met een keynote van (professor) Gerald Sussman, een zeer invloedrijk persoon in de softwaredevelopmentindustrie. Hij heeft o.a. Structure and Interpretation of Computer Programs geschreven, jarenlang het textboek van de computer science faculteit van het MIT. Hij is misschien bekender als uitvinder van de Scheme programmeertaal. In zijn praatje... ik weet eerlijk gezegd niet wat precies het punt was, maar hij liet o.a. zien hoe je in een behoorlijk literate programming-achtige manier in Scheme zaken als electrische schema's kon laten uitrekenen. Maar ik weet niet zeker wat het kernpunt van zijn keynote was, zal ik nog maar een keer moeten bekijken.

In ieder geval, tl;dr: Misschien had ik deze blogpost in tweeŽn moeten opdelen. Dit is dan officiŽel de samenvatting, ik zal later nog wel een ietwat uitgebreider / diepgaandere set posts maken over de inhoud van de conferentie en (indien relevant) mijn persoonlijke meningen daarover.

Edit: Less Films heeft een preview van hun videoverslagen van de conferentie op Youtube gezet:

http://www.youtube.com/watch?v=SjgPIW1Bno4

(Ik zie een collega langskomen op het stukje rond 0:38, :+)