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).
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") }
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.
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.
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: