Programmeringssproget Go fylder 10 år

14. november 2019 kl. 11:32
Programmeringssproget Go fylder 10 år
Illustration: Kevin Shockey.
Sproget, der kombinerer sikre pointers med garbage collection, har i dag en million brugere, siger Google.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

I søndags fyldte programmeringssproget Go 10 år.

Inspirationen bag Go er var de C-agtige sprog, samt parallelismeorienterede forskningssprog, som Gos bagmand Rob Pike fortalte til Version2 i 2010, da sproget endnu var en baby.

I sin ungdom arbejde Rob Pike sammen med notabiliteter som Brian Kernighan og Ken Thompson, der opfandt C og Unix, og dermed ændrede it-verden.

Rob Pike har været med i udviklingen af det eksperimentelle styresystem Plan 9, der udviklede videre på ideerne i Unix. Det slog ikke bredt an, men hos Google designede han Go, der umiddelbart var rettet mod firmaets behov på serversiden.

Artiklen fortsætter efter annoncen

Med et overfladisk blik kan Go se ganske velkendt ud.

»For små programmer ligner det C og Java, men større programmer ser helt anderledes ud,« fortalte han på en konference i Aarhus i 2010, hvor Version2 interviewede ham efterfølgende.

Når man dykker længere ned i sproget, forsvinder indtrykket af Java og C nemlig, sagde Rob Pike dengang.

Go udvikles løbende, og for nylig fik sproget typeparametre.

Artiklen fortsætter efter annoncen

I dag har sproget en million brugere, skriver Google i et blog-indlæg.

Sproget var som udgangspunkt skrevet til Googles behov, men viste sig at være et sprog til alle anvendelser, ifølge Rob Pike.

»Den storskala-serversoftware, som vi skriver på Google, er meget svært af en række årsager. En af årsagerne er, at programmerne tager lang tid at kompilere, fordi håndteringen af afhængigheder i C-agtige sprog bevirker, at compileren skal arbejde alt for hårdt. Den skal læse filer mange gange. Det kan være eksponentielt meget langsommere, end det behøver at være.«

Go benytter C-agtige og måske lidt gammeldags mekanismer som delte buffere og pointere. Men Gos pointere er helt sikre, fremhæver han, og Gos parallelisme-faciliteter sørger for, at pointere til delt hukommelse kun kendes af en proces ad gangen, ved at sende pointeren i en kanal til formålet. Derudover benytter sproget garbage collection, så man slipper for destructors som i C++.

Artiklen fortsætter efter annoncen

Sproget bryder også med, hvad Rob Pike kalder for 'type-centrering' i Java og C++. Go benytter statiske typer, men sprogets interface-model har en »dynamisk feel,« som Rob Pike udtrykker det.

»Som et resultat af det designer man ikke programmet ved at starte med type-hierarkiet. Man kan finde en types rigtige form, mens man skriver programmet, så man slipper for at skulle refaktorere. På en måde er det et skridt tilbage, i forhold til den måde folk tænker på det, men det er et skridt fremad målt i dets udtryks- og tilpasningsevne.«

Ingen kommentarer endnu.  Start debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger