Sinds kort schrijven we bij Openminds enkele interne tools in Go. De tweede editie van GolangUK was dan ook een goede gelegenheid om deze taal beter te leren kennen. De conferentie vond plaats in de prachtige gebouwen van The Brewery in Londen.

Maar eerst: waarom is de populariteit van Go zo sterk toegenomen? Go wordt naar statisch gelinkte binaries gecompileerd. Met andere woorden: ze kunnen overal uitgevoerd worden zonder externe afhankelijkheden. Daarnaast zijn simpele tooltjes ook iets sneller dan de Ruby-varianten die we vroeger gebruikten.
Dag 1 - Workshop
Voorafgaand aan GolangUK waren twee workshops voorzien. De keuze bestond uit de Ultimate Go Workshop die een introductie tot de programmeertaal gaf voor mensen die voorlopig enkel ervaring hadden met andere talen. In de Advanced Go Workshop, voor iedereen die wel al iets in Go geknutseld heeft, keken we naar het belang van data-oriented design: goed doordachte datastructuren kunnen een groot verschil maken in performantie. Er werd gehamerd op het belang van simpele en makkelijk te lezen code. Later kwamen ook de verschillende tools aan bod die helpen met het opsporen van code die veel CPU-tijd kost of veel geheugen verbruikt.
Joren koos voor de Ultimate Go Workshop
Met nog niet veel Go-ervaring was het fijn om ondergedompeld te worden in de structuren en details van Go. Dit heeft geholpen om de rest van de conferentie toch wat beter te begrijpen. Komende van een Ruby-achtergrond zijn er toch wel een hoop ideeën die helemaal anders zijn in Go. Een dagje experimenteren met Go was dan ook zeer leerrijk.

Voor wie zelf eens door alle voorbeelden en oefeningen wil gaan, is er goed nieuws. Alles staat online en met behulp van play.golang.org kan je ook meteen beginnen spelen met code.
Ik trok naar de Advanced Go Workshop
Deze was helemaal niet zo praktisch als ik had verwacht. Het bleek een presentatie met input van het publiek te zijn, dus wat dat betreft was ik een beetje teleurgesteld. Het enthousiasme van de presentator maakte dat wel goed. William Kennedy is waarschijnlijk de meest enthousiaste verteller die ik ooit heb gezien. Zijn verhaal was vrij abstract, maar de ludieke voorbeelden en grapjes tussendoor zorgen er wel voor dat zijn boodschap bleef hangen. Zelf onthoud ik vooral het belang van goed gestructureerde code. Iets wat in onze interne go-projectjes momenteel wat achterblijft. Werk aan de winkel dus!
Na de workshops was er afgesproken om iets te gaan drinken in een lokale pub, daar kwam echter niet veel volk opdagen. De workshops waren ook iets optioneels vooraf aan de conferentie waardoor er sowieso minder mensen waren.
Dag 2 - Conference Day 1
Donderdagochtend lag de focus (zoals in de workshop) opnieuw op het schrijven van idiomatische code. Een verzamelnaam voor verschillende afspraken en richtlijnen die de Go-community heeft om code duidelijk, leesbaarder en efficient te maken.

De trend van microservices en containers is ook duidelijk zichtbaar, misschien zelfs een beetje te veel. De onderwerpen tracability (het opsporen van requests doorheen verschillende services), logging en statistieken via Prometheus komen vaak terug. Ook talks die over iets anders lijken te gaan raken vaak aan het onderwerp. De focus had wat meer over de Go-taal zelf mogen liggen.
Donderdagavond was eindelijk het moment aangebroken waarvoor iedereen stiekem kwam: het sociale event. Buiten was een we-doen-alsof-we-in-een-tropisch-land-zitten terrasje ingericht en de organisatie zorgde voor een lekkere barbecue.
De catering op GolangUK was overigens tijdens heel de conferentie dik in orde! We konden zelf onze gerechten samenstellen door 3 soorten koude slaatjes (vlees, vis of enkel groenten) te combineren met 3 keuzes in warme gerechtjes: ook weer vlees, vis of vegetarisch.
Dag 3 - Conference Day 2
De eerste interessante talk was "How to raise a Gopher", waarin Tiffany Jernigan uitlegt hoe ze in korte tijd Go heeft geleerd en haar ervaring met ons deelt. Heel interessant, vooral omdat bij Openminds ook veel mensen voor de eerste keer in contact komen met de programmeertaal. Ze gaf een mooi overzicht van de online (en in mindere mate geprinte) bronnen die haar geleerd hebben hoe ze in Go aan de slag moest.
Daarna, bij gebrek aan beter, een inkijk in iOS en Android apps die gebruikmaken van Go Mobile. Het idee is dat de mobiele apps nog steeds in de native talen voor elk van beide platformen geschreven worden, maar dat ze wel gebruik kunnen maken van een Go-library voor de gedeelde logica. De Go Mobile tool zorgt voor de nodige koppelingen.
De beste talk van vrijdag was van Liz Rice, die op een verrassend interessante manier toonde wat een container nu eigenlijk is. Waar de meesten een ingewikkelde rede over namespaces en cgroups voeren, implementeerde Liz een container in Go. Stap per stap, of eerder syscall per syscall, toonde ze hoe een proces meer en meer afgezonderd werd van de rest van het systeem. In een klein half uurtje had ze zo een Go-programma met een eigen filesystem, hostname en afgezonderde procesnummers (PIDs).
Ook op vrijdag bleken veel talks te raken aan de microservices, dus het was soms een beetje zoeken om niet nog eens dezelfde argumenten te horen.
The end
GolangUK had helaas geen closing keynote om op een mooie manier af te sluiten. Na de laatste presentatie was de conferentie plots gedaan. Daar schoot de verder prima verlopen conferentie toch iets te kort.
Voor we dag nadien naar huis vertrekken toch nog eens opscheppen (pun intended) aan het ontbijt.