Go er et språk som er utviklet av Google, med Rob Pike og Ken Thompson i spissen. Det var opprinnelig et eksperiment internt i google, men har de senere årene blitt svært populært. I 2016 ble det kåret til «Programming language of the year» av Tiobe indeksen. Populæriteten kommer av at språket er enkelt å lære, samtidig som det er et produktivt språk som er enkelt å lese. En av Go sine styrker er støtten det gir for parallelisering av koden og at det krever lite ressurser sammenlignet med f.eks. Java. Go er ikke et objekt orientert språk, men benytter interfaces for å oppnå polymorfisme.

Våre anbefalinger

Concurrency is not parallelism
Anbefalt av Nils

Concurrency og parallelisme er to begreper som blandes sammen. Rob Pike, en av skaperene av Go, forklarer forskjellen og hvordan dette concurrency kan håndteres i Go. Det foretrukne patternet i Go er ‘Communicating Sequential Processes’ (CSP) som også blir brukt av andre språk. CSP implementasjonen i Go er brukt som grunnlag for implementasjon i flere andre språk som Clojure og Kotlin.

Våre foredrag

Parsing binary weather data with Go

GRIB er et binært filformat som brukes for å distribuere værmeldinger og værobservasjoner. Nils har laget et bibliotek for dette og presenterer det på «Go Oslo User Group»

Våre sideprosjekter

Shufflify

Til bilturene med familien er det behov for en shuffle-funksjon som tar hensyn til at «alle skal få sitt». Christian lager en tjeneste i Go som løser dette svært essensielle problemet.

Analyse av værdata
Av Nils

Et system for å samle inn og organisere data om vær og bruke dataene for å finne korrelasjoner med andre tidsserier. Skrevet for det meste i go og deployet på google cloud platformen med kubernetes.

vintilbud.no
Av Nils

Vintilbud er en app som overvåker alle varene på vinmonopolet og finner varer som blir satt ned i pris. Tilbudene blir presentert i en Android-app og en ios-app der man kan filtrere på type og sortere på ulike parametere. Backend er skrevet i go og kjører på google app-engine. Mobil-appen for Android og iOS er skrevet i dart med rammeverket flutter.

Vår fri programvare

  • grib - Et bibliotek for å parse værdata-filer i det binære formatet ‘grib’. Biblioteket er skrevet i Go og er en videreutvikling av et forlatt bibliotek. Utviklet funksjoner som gjør det mulig å streame grib-filer samtidig som man filtrerer på innholdet.
  • Vi har også bidratt til Go, Influx/Telegraf og Unleash-go-client

Våre blogginnlegg

Hack slack sin URL-redirect
Av Nils

Har du også irritert deg over Slack sin trege redirect-funksjon? Her her en oppskrift for å redusere irritasjonen med din egen URL-redirecter.

Profilering av kode i Go
Av Nils

Noen ganger er ytelse kritisk for at ting skal fungere ordentlig. Et bibliotek for parsing av binære værdata er en av de gangene. Med Go har vi mulighet til å kunne si akkurat hvilken kodelinje som tar tid eller som allokerer minne.

A Better Playlist Shuffle with Go

«Shuffle» i eksempelvis Spotify burde være smartere enn ren tilfeldighet. I dette innlegget presenterer jeg en alternativ algoritme med implementasjon i Go.