24.11.20164 min

GogoAppsGogoApps

Dlaczego język programowania golang może stanowić przyszłość programowania

Dlaczego język programowania golang może stanowić przyszłość programowania

W programowaniu, tak jak i w innych sektorach IT, widać konkretne tendencje. Chodzi tutaj np. o sposoby ewoluowania narzędzi pracy, środowisk, procesów lub zwyczajnie zastępowanie ich nowszymi. Dzięki temu ułatwia się development oraz poszerza możliwości, a chyba każdy chce tego w pracy.

Cofnijmy się do 2012 roku, wtedy bowiem pojawiły się dwa języki programowania, które można określić mianem nowych. Pierwszym z nich jest dynamiczny Elixir, który niejako wykorzystał i zastąpił Erlanga. Elixir pomaga w tworzeniu aplikacji skalowalnych, łączy w sobie solidność kodowania funkcyjnego wspomnianego już Erlanga, składnię podobną do Ruby oraz zaawansowane funkcje dla metaprogramowania. Do największych twórców i firm, które przyswoiły Go do tworzenia oprogramowania, warto wymienić tutaj Heroku, WhatsApp, Klarna oraz Basho.

Hello, World w Eliksirze

current_process = self()

# Spawns an Elixir process (not an operating system one!)

spawn_link(fn ->

  send current_process, {:msg, "hello world"}

end)

# Block until the message is received

receive do

  {:msg, contents} -> IO.puts contents

end


W roku wydania Elixiru, pod koniec marca ukazał się także pierwszy release (tj. go1 w stabilnej wersji) opensource’owego języka Google’a, czyli Go. To właśnie na Go, nazywanym potocznie golangiem, skupimy tutaj więcej uwagi. Język nie należy do tych, które przez wielu developerów określane są jako „high level languages” (Scala, C, C++, czy bardziej egzotyczne, takie jak Muriel, APL, czy Whitespace). Przy odpowiednim czasie i materiałach, każdy z odrobiną zacięcia i wiedzy o programowaniu jest w stanie stworzyć własną apkę w Go. W związku ze swoją prostotą i dynamiką użycia, tak samo jak przy Elixirze, wiele firm zdecydowało się na przepisanie swoich aplikacji webowych właśnie do Go – z tych najpopularniejszych warto wymienić choćby Wirtualną Polskę czy większe jak Dropbox, SendGrid czy YouTube (vitess).


Co nowego w Golang

Język ze stajni Google’a (oraz bardzo wielu innych partnerów) doczekał się w sierpniu stabilnej wersji 1.7. Większość zmian, które nastąpiły dotyczyły implementacji bibliotek, runtime’a i toolchaina. Dodatkowo z najważniejszych zmian należy wymienić także dodanie portów dla IBM LinuxOne, update back-endowego compilatora x86-64 w celu generowania lepszego kodu oraz wsparcie vendoringu, które wprowadzone było już w wersji 1.5 w zeszłym roku.

Hello, World w Go

package main

import "fmt"

func main() {
    fmt.Println("Hello, World")
}
 


Czy pisanie kodu w Go jest trudne do opanowania

Dla wielu doświadczonych programistów, nauka Golanga jest intuicyjna i prosta, dlatego też czas do przyswojenia google’owskiego języka szacują oni na kilka-kilkanaście dni. Niektórzy twierdzą, że tak jak Elixir był zastąpieniem Erlanga, tak Go może być potomkiem C++ na miarę nowych wyzwań w XXI wieku. Dlaczego? Ponieważ posiada on szybszą kompilację, łatwiejszą składnię i garbage collector. Tym, co przemawia za „świetlaną przyszłością” opensource’owego języka to także elastyczne struktury danych, solidne wskaźniki i referencje oraz bardzo obszerna biblioteka standardowa pozwalająca na budowę dużych projektów z niewielką ilością zewnętrznych zależności. W Go nie znajdziemy też klas, a to sprawia, że pod tym względem może być on podobny do JavaScript, lecz odmiennie od JS w golangu nie ma współdzielenia funkcjonalności między klasami.


Nie tylko zalety

Długo można by jeszcze wymieniać ułatwienia występujące w Go, lecz język posiada także wady, o których także należy wspomnieć. Jednym z często wymienianych utrudnień jest wydajność oraz obsługa błędów, które przy wielu projektach mogą znacząco wydłużyć development. Niemniej, błędy w Go są naprawiane w kolejnych wersjach, a temat konkurencyjności języka stanowić może inspirację dla kolejnych artykułów na bulldogjob.pl.


Coraz więcej specjalistów wykorzystujących Go

Go to także ciągle rosnąca społeczność developerów i sympatyków. Golangowcy pracujący nad własnymi projektami, czy też zrzeszeni w ramach różnych organizacji, a także osoby, które w Go widzą przyszłość backendu, starają się szukać wydarzeń oraz społeczności, w ramach których mogą wymienić uwagi i spostrzeżenia oraz podzielić się doświadczeniem.

GogoApps, gdzie pracuję, także postanowiło zrzeszyć programistów i sympatyków Go, stwarzając dla nich forum wymiany wiedzy. To nie tylko ciągle rosnąca grupa na Facebooku ale także wznowiony cykl comiesięcznych meetupów odbywających się w Warszawie w każdy ostatni czwartek miesiąca – o szczegółach więcej informacji w dalszej części artykułu. Takie wydarzenia mają miejsca także w Krakowie, Trójmieście czy Wrocławiu. Poza Facebookiem dużo informacji o polskiej scenie golanga można znaleźć także na Slacku, Meetup.com oraz IRC-u. Wymienione miejsca stanowią matecznik dla grupy profesjonalistów oraz entuzjastów Go, którzy chętnie odpowiedzą na różne pytania oraz przedstawią proponowane rozwiązania konkretnych problemów.

Golang Warsaw – zdjęcie z trzeciego meetupu poświęconego Golangowi, organizowanego przez GogoApps w Noon/Noon (źródło własne)


Projekty i eventy za granicą

Oczywiście wypada też spojrzeć na naprawdę duże wydarzenia związane z Go, które mają skalę ponadnarodową. Do tych znaczących możemy na pewno zaliczyć konferencję „dotGo”, która odbyła się w Paryżu 10 października. W połowie lipca w amerykańskim Denver odbył się także „Gophercon” – największa na świecie dwudniowa konferencja poświęcona Go. Podczas takich eventów uczestnicy mają niepowtarzalną okazję do wymiany wiedzy z entuzjastami Go z całego świata.


Dobre perspektywy

Jak można zatem stwierdzić, Go może stanowić poważną konkurencję dla języków o wysokim „progu nauczenia” oraz skomplikowania. W googlowskiej technologii „na plus” działanie bowiem nie tylko swoboda i szybkość działania, ale także wsparcie ze strony społeczności i wydawcy. Owszem jest jeszcze trochę rzeczy do poprawienia, ale z pewnością w niedalekiej przyszłości niedogodności będą usuwane, a golang stanie się jeszcze bardziej domyślmy i skierowany do użytku w projektach komercyjnych. Poczekajmy zatem na następne release’y i śledźmy nowinki w grupach poświęconych technologii spod znaku susła.

Źródła:

<p>Loading...</p>