Skąd coraz większa popularność Golanga?
Na początku tego roku, Stack Overflow opublikował ankietę na rok 2021. Jeśli zwróciłeś uwagę na ostatnie nowinki technologiczne to na pewno wiesz, że JavaScript i Python dominowały kolejny rok z rzędu. Nie były to jednak języki, które przykuły mój wzrok.
Na tej liście był jeszcze jeden język: Golang.
"Golang? Ale wylądował tylko na 12 miejscu" - pewnie tak teraz myślisz.
To prawda. Nie jest to najpopularniejszy język programowania na świecie. Korzysta z niego relatywnie mniejsza liczba programistów i jest ku temu kilka dobrych powodów.
Go jest stosunkowo nowy i nierozwinięty. Jest to przede wszystkim język pozbawiony dużej ilości lukru składniowego, który posiadają inne języki. Nie posiada też żadnych popularnych frameworków, które automatyzują pisanie powtarzalnego kodu. A jeszcze trzy lata temu nie posiadał on standardowego menedżera pakietów.
Nie jest więc zaskakujące, że większość programistów go nie używa... "jeszcze".
Podczas gdy Go zajął tylko 12 miejsce pod względem popularności, to zajął trzecie miejsce dla języka, którego programiści chcieli się nauczyć (zaliczam TypeScript w kategorii JavaScript).
Tak samo uważa HackerRank. Według ich badania z 2020 r. Golang był najbardziej pożądanym językiem do nauki przez trzy lata z rzędu.
Z ankiety HackerRank 2020 — zrzut ekranu autora
A to jeszcze nie wszystko, Go jest w pierwszej dziesiątce najbardziej lubianych języków jak również jest to trzeci najpopularniejszy język na GitHubie pod względem ilości gwiazdek.
Tak więc Go szybko zyskuje na popularności. Dlaczego?
Jak już wspomniałem wcześniej, Go wciąż próbuje się uporać z wieloma problemami. W obecnej palecie języków programowania istnieje więcej wszechstronnych i solidniejszych opcji do wyboru. Tak więc dlaczego Golang bierze górę w branży oprogramowania?
Piękno w prostocie
Pomimo wad Golanga, jest w nim także wiele do pokochania. Od modelu współbieżności, bogatego wsparcia firm trzecich, po solidność narzędzia wiersza poleceń jak i wiele więcej. Ale to wszystko na nic by się zdało, gdyby nie najlepsza jego cecha: łatwość użycia.
Jak już wspomniałem, Go to podstawowy i prosty język. Ale takie właśnie było jego założenie — prostota ma być tutaj siłą. Ma tylko 25 słów kluczowych, ale każde z nich jest uniwersalne.
Weźmy za przykład for
. Jest to słowo kluczowe zarezerwowane dla pętli i iteracji. Może być użyte jako normalna pętla for
.
for i := 0; i < 10; i++ {
fmt.Println(i)
}
Może być użyte jako pętla while
.
i := 0
for i < 10 {
fmt.Println(i)
i++
}
A także do iteracji po tablicy lub mapie.
for key, value := range myMap {
fmt.Println(key, value)
}
Nie daj się zwieść prostocie Go - to naprawdę mocna artyleria.
Język statyczny z dynamicznym akcentem
Go jest językiem statycznym, a takich języków zwykle nieco trudniej się na uczyć. Szczególnie dla tych, którzy uczyli się programowania przy użyciu dynamicznych języków, takich jak Python czy JavaScript.
Jednak Go uczył się od swoich dynamicznych kuzynów. Obsługuje (w ograniczonym stopniu) dynamiczne przypisanie i jest językiem, w którym pamięcią zarządza garbage collector. Połączenie tego z uproszczoną składnią sprawia, że jest to język, który jest łatwy do przyswojenia i używania.
Łagodna krzywa uczenia się jest jednym z najistotniejszych czynników decydujących o jego szybkim przyjęciu przez programistów.
Podążaj za pieniędzmi
Jeśli chcesz poznać jeszcze jeden powód, dla którego programiści kierują się w stronę Go, wystarczy, że będziesz chciał podążyć za pieniędzmi.
Żródło: HackerRank — Screenshot autora
Według badania HackerRank Go jest skorelowane z 33% wzrostem wynagrodzenia w porównaniu do przeciętnego. Mało tego, 1 na 10 menedżerów poszukujących pracowników zatrudniłoby kandydatów z doświadczeniem z Go. Programiści mają więc finansową motywację, aby się go nauczyć.
Jedną rzeczą, na którą należy zwrócić uwagę — jest to, że korelacja nie oznacza związku przyczynowego. To, że znasz Go, nie musi od razu oznaczać, że będziesz zarabiać więcej pieniędzy. Zbadajmy jednak, dlaczego ta korelacja istnieje.
Duże firmy technologiczne go uwielbiają
Pierwotnie opracowany w Google i wydany w 2009 roku, Golang powoli, ale pewnie, zdobył zaufanie branży programistycznej. Wraz ze wzrostem popularności architektury opartej na mikroserwisach coraz więcej dużych firm technologicznych takową przyjęło.
Firmy takie jak Uber, Twitch i Slack używają Go w swoich stosach technologicznych. Nawet firmy, takie jak GitHub i Shopify, które są znane z używania i promowania architektur monolitycznych, zaczęły go używać.
Wszystkie te firmy płacą najwyższe stawki rynkowe i przyciągają tysiące aspirujących inżynierów oprogramowania. W przeszłości programiści, którzy chcieli pracować u tych technologicznych tytanów, musieli uczyć się języków takich jak Java, C lub C++. Ale bądźmy szczerzy, nie są to języki, których większość programistów wolałaby używać na co dzień. Wystarczy spojrzeć na ankietę, aby przekonać się o tym na własne oczy.
Większość programistów obawia się używania C, C++ i Javy — źródło: StackOverflow Survey
Go oferuje alternatywę dla inżynierów, którzy chcą pracować w dużych firmach technologicznych, a nie chcą poddawać się Javie.
No dobrze… Jednak wciąż pozostajemy bez odpowiedzi: "Dlaczego coraz więcej firm przechodzi na Go?"
Odpowiedź jest dość prosta.
Go jest językiem chmury
Stwierdzenie, że przetwarzanie w chmurze zmieniło branżę technologiczną — jest niedopowiedzeniem. Firmy nie muszą już budować farm serwerów i zatrudniać zespołów do ich utrzymania. Dostawcy usług w chmurze sprawili, że serwery stały się towarem. Zespoły inżynierów mogą teraz stawiać wirtualne maszyny jednym kliknięciem myszy.
Wzrost znaczenia chmury spowodował zapotrzebowanie na technologie, które mogą pomóc zespołom w zarządzaniu i skalowaniu ich architektur w chmurze. I tak narodziła się koncepcja cloud-native.
Technologie takie jak Terraform, Docker i Kubernetes sprawiają, że wdrażanie, skalowanie i zarządzanie aplikacjami w chmurze jest łatwiejsze niż kiedykolwiek. To one są najpopularniejszymi narzędziami programistycznymi za Gitem. I wszystkie są zbudowane z Go.
Mowa nie tylko o Docker czy Kubernetes. Przeważająca większość projektów sponsorowanych przez Fundację Cloud Native Computing została napisana w języku Go.
Go został zbudowany dla chmury i mikroserwisów. Jest zaprojektowany dla serwerów wielordzeniowych. Kompiluje się bez problemu na różne architektury i systemy. Jest również niewiarygodnie lekki. Jego skompilowane binarki są 10x mniejsze niż podobne binarki w Javie. Nie tylko są one mniejsze, ale także kompilują się znacznie szybciej.
Kubernetes posiada ponad 5 milionów linii kodu aplikacji. Gdyby był on napisany w jakimkolwiek innym języku, jego kompilacja mogłaby zająć od kilkudziesięciu minut do kilku godzin. W przypadku Go zajmuje to tylko minutę lub dwie.
I nie tylko ja tak twierdzę. Według 5 zasad Google dla architektury Cloud Native:
„Prawie wszystkie architektury chmurowe są oparte na mikroserwisach[.]”
6 na 10 organizacji przeniosło się do chmury, a w drodze jest ich coraz więcej. Coraz więcej firm staje się zależnych od Go — niezależnie od tego, czy korzystają z niego bezpośrednio, czy nie.
Ostatnie uwagi
Nie jest jasne, czy Go stanie się kiedykolwiek bardziej popularny i bardziej wykorzystywany niż JavaScript, Python czy Java. Ale nie musi. Języki programowania nie są rynkiem, na którym wszyscy wygrywają.
Go rozwiązuje podstawowe potrzeby. Język, który zapewnia szybkość, bezpieczeństwo i skalowalność języka statycznego z łatwością użycia języka dynamicznego. Wyrobił sobie również ważną niszę.
A każdy język ma swoją niszę. JavaScript ma tworzenie stron internetowych. Python ma data science. Ruby ma startupy. Java ma biznes. A Go ma chmurę.
Mimo że Golang ma zaledwie dekadę, zdążył już odcisnąć swoje piętno. A wraz z rosnącą dominacją przetwarzania w chmurze przyszłość Go rysuje się w jasnych barwach.
Oryginał tekstu w języku angielskim przeczytasz tutaj.