
JAOO: Don't pass booleans into functions
JAOO Keynote
"With C, you can shoot yourself in the foot. With C++, you can blow your whole leg off" – Bjarne Stroustrup.
Årets JAOO er skudt i gang med en keynote af Barry Boehm over temaet "Scaling Up Agility: The Architected Agile Approach" vist nok med udgangspunkt i en bog manden har skrevet. Citatet på første slide har den tilsigtede virkning og publikum er fanget.
En halv time inde er spændingen dog fordampet og jeg tager mig selv i for 5'te gang at tvinge interessen tilbage til det der foregår på Musikhusets store scene, hvilket på nuværende tidspunkt er en lettere udmarvende gennemang af et sæt case studies på tætpakkede slides. Den konklusion jeg ender med at tage med mig fra seancen er, at hybrider mellem mere traditionelt styrede udviklingsprojekter ("plan-driven") og agile modeller er værd at overveje.
Omend man må indrømme at agil udvikling er mere fagrelevant end amerikanske rigmænds egenfiancierede ture i rummet med russiske løfteraketter, er det uomtvisteligt at sidste års keynote med Microsoft milliardæren Charles Simonyi var i en helt anderledes og underholdende klasse. Mandag morgens keynote bør være fængslende, relevant og underholdende fordi den sætter tonen for resten af ugen.
JAOO bruger et simpelt system med store grønne, gule og røde sedler man smider i en spand på vej ud for at indikere sin grad af tilfredshed. Min var ikke grøn i denne omgang.
Dynamic in a World of Static
"Our customers are scared of Dynamic ... and we're scared of our customers!"
Mads Torgersen er på slap line i et mystisk lokale bestående at to lange gange, der mødes i en vinkel med to storskærme, vendt mod hver sin gruppe tilhørere.
C# er et statisk typet sprog: variable erklæres altid med en type og compileren checker med nidkær sikkerhed at man ikke snyder på vægten. Ikke noget med at stoppe tekststrenge i hvor der kun må være heltal eller tildele en datoværdi hvor en boolsk værdi er ventet.
I skarp kontrast hertil står sprog som Python, Scheme, Ruby, Lisp mfl., der er dynamisk typede og hvor compileren er langt mere tilgivende. Her kan en variabels type ofte først bestemmes når programmet kører, noget der giver programmøren en stor grad af fleksibilitet omend knap så megen ro i maven omkring programmets korrekthed.
De to modeller har hver sine fordele og ulemper og Mads gav en klar, skarp og interessant gennemgang af de overvejelser C# sprogdesignerne var igennem for at kunne bringe dynamisk binding ind i C# verdenen uden at begå vold på de oprindelige tanker bag sproget. Foredraget kunne have været styrket en anelse med en indledende 2 minutters motivation af hvorfor dynamisk typing overhovedet er interessant for C# programmører. Spørgsmålet kom dog fra en tilhører og svaret var overraskende, at det primært er for at kunne kalde eksisterende dynamisk kode.
Grøn fra mig.
Clean Code III: Functions
En kort pause senere står den på ren kode med Robert C. Martin, en veritabel sværm af best practices udi kunsten af programmere. Jeg twitter en af dem fra min Hero: "Best coding practices at #jaoo : don't pass booleans into functions - indicates multiple behaviours." og et øjeblik efter har den fået 5 retweets fra folk jeg ikke kender.
Foredraget er udmærket, men næsten for mættet med gode råd til at kunne absorberes uden en efterfølgende rigorisk gennemgang af slidesættet. Men det kan man jo også bare sætte sig og foretage når det bliver tilgængeligt på jaoo.dk.
En grøn seddel lander i spanden.
På vej gennem udstillingshallen over mod frokostbuffetten i Ridehuset passerer jeg en storskærm, der viser tweets om #jaoo og med topmålet af præcision skifter tekst netop som jeg passerer, "... don't pass booleans into functions ..."
Partner og it-arkitekt i konsulenthuset Silverbullet. Han har en baggrund som datalog fra Århus Universitet og blander sig i alt fra smartphones til enterprise arkitektur.
Follow @kaarekjelstroemKommentarer (2)
Helt enig,
Der mangler det kick der var sidste år til at sparke en spændende uge igang. Synes dag 1 har været ok, men der har endnu ikke været nogle af de indlæg hvor man bare tænker damn, han/hun har virkelig fat i noget.
At holde en opening note og så "Læse" sine slide og ikke "make a wakeup call" gør virkelig en forskel.
Nu kan vi blot se frem til de næste 2 dage :)
Synes faktisk at de indlæg der har været hvor folk har haft "hands on" har været de bedste indtil nu, om end det ikke er dem der har været flest af.
Jeg er enig i at Barry Boehm var rimelig kedelig, og projektoren var desværre ikke konfiguretet skarpt nok, det blev dog rettet hurtigt bagefter.
Personligt synes jeg at Arjen Poutsma omkring Spring var rigtig godt (Mest fordi jeg også kigger på Spring.NET).
Det bedste foredrag var dog Martin Fowler, "Making use of Patterns". Han er en fantastisk taler.
"And a singleton in a pear tree".

