Har sat mig et mål, skjult dagsorden, for min deltagelse i GOTO.
Det overordnede mål er at få noget med hjem, andet end kuglepenne og tømmermænd. Det er min holdning at hvis man ikke gør det på enten den korte eller lange bane så er det bare hygge og underholdning.
Har en passion for bla. både Ruby og Clojure som begge er ting jeg har opdaget og fået med hjem fra en konference, og ved at lære og bruge disse sprog har jeg fået smag for at forbedre, optimere og refakturere selve udviklingen, både for mig personligt men også undersøge på et mere generelt plan hvordan vi som industri kan gøre ting bedre.
Hvad der følger er resultatet af min søgen efter netop det.
Swift er super-interessant, bla fordi det indeholder en masse ideer fra funktionel programmering, som jeg selv er blevet begejstret for ved bla. at kode Clojure. At de nu lever i Apples økosystem betyder at de er ved at blive mere udbredt. Mere specifikt understøtter Swift brugen af Map-Reduce og filter som enhver FPer elsker. Når man først får styr på dem, er det overraskende mange problemer, der blot er en liste af ting man enten laver om til en liste af andre ting, tager en del mængde af eller aggregere til en (eller flere ting), det er ganske enkelt en meget brugbar abstraktion som ikke bliver brugt nok.
Det er for mig også tydeligt at mere og mere af vores software er drevet af events, og køre som en service, det gør at det giver mening at tænke og programmere mere event-orienteret, reactive og ved brug af async. Selv er jeg stor fan af CSP-modellen som man bl.a. finder den i Go-lang og helt sikkert noget jeg gerne vil dykke mere ned i.
Når man har sagt “event” er det meget oplagt at sige Erlang, og det er uden tvivl en interessant platform og sprog, for mig er det mest det første. Ideerne og muligheden for at have milioner af processor på samme tid og trivielt distribuerer, observerer og kommunikerer med dem er super-brugbart. Netop derfor er Elixir klar noget jeg skal lege med, for det er et sprog der køre på Erlangs miljø, men har for mig at se en mere interesant syntax, og et par andre features som Erlang ikke har.
Den måde jeg koder Java på har ændret sig efter jeg er bleve smittet med FP “buggen” bl.a. gør jeg mig umage for at så vidt muligt at undgå at lave “setters” til mine klasser, hvis jeg ikke har brug for dem. Blot lave en constructer, der spiser det, den skal bruge. Selvfølgelig kan man ikke undvære at sætte og ændre ting, men der forbavsende meget man ikke behøver at ændre, når man først tænker over det, og ved at have færre klasser og objekter, der indeholder “mutable state”, gør man livet nemmere for sig selv. Det var derfor også super-cool at se at C# har tænkt nøjagtigt det samme og bygget det ind i sproget at det er syntaktisk trivielt at lave “setter”-løse objekter. Lever godt nok ikke i C#-land men hatten af for at folkende bag gør, hvad de kan for at følge med tiden og gøre deres sprog nemmere at bruge. Kan så bare håbe deres ideer breder sig.
En af de andre ting jeg utrolig gerne vil lege med er H2O som er et bibliotek til Machine Learning, det er open source og kan arbejde på store mængder data, super-effektivt. En af mændene bag dette er Cliff Click, som jeg tidligere har hørt tale om, hvordan man gør ting smart og hurtigt. Efter min overbevisning er han blandt de ypperste eksperter inden for at få en computere til at gøre ting hurtigt, og han brugte ordet “fast” mange gange i sin gennemgang af H2O, og når har siger “fast”, mener han det og ved hvad han snakker om. Har leget med ML og synes det er super-cool, så ser frem til at kunne bruge H2O til at tygge på store mængder data.
Det som var den mindst tekniske talk, men alligevel den der var bedst og gjorde størst indtryk var Russ Olsens “To the Moon”. Det var en meget medrivende gennemgang af, hvordan noget så nærmest sindsygt og umuligt som at komme til månen alligevel, med nød og næppe lykkedes tilsidst. Der var mange ting man kunne lære af de skøre “Rocket Scientist”, men mest af alt var det, at man aldrig skal sige noget er umuligt, og at vi alle bør lade os inspirere af Kennedys famøse citat:
“We choose to go to the moon. We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard”
Lad os huske det var ingeniører som os der gjorde det, og gå ud og gøre noget der er svært.