Go – język programowania od Google zdobywa popularność
Choć C++ pozostaje jednym z najpopularniejszych języków programowania wśród programistów, opracowany przez Google język Go odnotowuje w ostatnich czasach najbardziej imponujący wzrost popularności.
Według danych portalu GitHub już 8,36 proc. pull requestów dotyczy właśnie tego języka. Go jest również jednym z niewielu języków, które od 2012 notują ciągły wzrost zainteresowania, z 0,83 proc. w drugim kwartale 2012 do wspomnianych ponad 8 proc. w pierwszym kwartale 2018 roku.
Źródła popularności języka Go
Za rosnącą popularnością języka Go stoi przede wszystkim rozwój internetu oraz zapotrzebowania na rozwiązania do obsługi komunikacji sieciowej.
- Go posiada wiele zautomatyzowanych rozwiązań, które w innych językach muszą zostać zaprogramowane ręcznie przez twórcę - tłumaczy Piotr Kozłowski, technical team lead z firmy CodiLime – W przypadku mikrousług, wszechobecnych w dzisiejszym internecie, wąskim gardłem nie jest moc obliczeniowa, a przepustowość i komunikacja między komponentami. W przypadku Go zarządzanie komunikacją wbudowane jest w sam język, co powoduje, że tego typu projekty znacznie łatwiej jest skalować. Programiści tego języka nawet nie spotykają się z bolączkami powszechnymi w C czy C++.
Dzięki swojej konstrukcji język Go pozwala uniknąć wielu błędów powszechnych w innych językach. Wiele z nich jest wykrywanych na etapie kompilacji, dzięki czemu programiści otrzymują raport. Tym samym zamiast szukać błędów w programie, który teoretycznie powinien działać, mogą od razu wprowadzić zmiany.
Go ma także wbudowanych wiele mechanizmów, które wymuszają na programistach stosowanie się do dobrych praktyk.
Nie zezwala na dziedziczenie implementacji - dziedziczyć można wyłącznie interfejsy. Pozwala to unikać budowania nieuzasadnionych zależności. Ograniczony jest również dostęp do pakietów, dzięki czemu zespoły programistyczne nie mogą wywoływać metod prywatnych w ramach pakietu oraz tworzyć instancji typów prywatnych.
- Dzięki takim rozwiązaniom czytelność i porządek w kodzie przestają zależeć od kultury programisty, a przesuwają się w stronę zasad konstrukcji języka - komentuje Piotr Kozłowski.
Skalowalność tworzonych rozwiązań jest szczególnie istotna w projektach związanych z cloud computingiem, gdzie częstym wyzwaniem są gwałtowne skoki obciążenia.
- Wbudowane wsparcie przetwarzania współbieżnego było jednym z głównych argumentów przemawiających za wyborem tego języka (rozważany był również C++) w projektach realizowanych w CodiLime - tłumaczy Marcin Orkiszewski, IT Project manager z CodiLime - Sprawdza się to głównie w obszarze backend, np. dla serwisów przetwarzających dużą liczbę zapytań przychodzących z GUI w celu dalszej konfiguracji dużej liczby urządzeń końcowych. Z kolei argumentem przemawiającym za Go w porównaniu z językiem Python było typowanie statyczne, które w przypadku projektów zawierających tysiące linii kodu ma duże znaczenie dla czytelności i dalszego utrzymania projektu.
Droga C
Język Go wywodzi się z tej samej rodziny języków co C, C++ czy Java, co oznacza, że składnia jest na tyle podobna, że programiści znający te języki są w stanie go opanować szybko i bez większego wysiłku.
- W naszych zespołach programista C, który wcześniej nie znał Go jest w stanie po trzech dniach efektywnie pracować i wspierać zespół – uważa Piotr Kozłowski. – Grupa niedoświadczonych programistów tworzących rozwiązanie w Go jest w stanie przygotować lepszej jakości aplikację, niż gdyby pracowali w C czy C++. Czasami ze względu na konstrukcję języka Go bywa mniej wydajne niż C++, jednak często różnice te są minimalne. Zdajemy sobie sprawę, że Go nie jest omawiany na uczelniach, dlatego wprowadziliśmy w CodiLime wewnętrzne szkolenia z tego języka dla wszystkich, którzy chcieliby się go nauczyć i zacząć w nim programować.
- Go jest w tej chwili jednym z najciekawszych języków programowania zarówno dla początkujących, jak i bardziej doświadczonych programistów. Powszechną praktyką w branży IT jest uczenie się nowego języka programowania co rok. Dobrym wyborem, zarówno z punktu widzenia rozwoju osobistego, jak i dalszej kariery może być nauczenie się programowania właśnie w Go – podsumowuje Piotr Kozłowski.