24.11.20164 min

GogoApps

In Go we trust – czyli dlaczego golang może stanowić przyszłość programowania

In Go we trust – czyli dlaczego golang może stanowić przyszłość programowania

W programowaniu, tak jak i w innych sektorach IT, widać konkretne tendencje. Chodzi tutaj mianowicie o ewoluowanie narzędzi pracy, środowisk czy technologii lub zwyczajnie zastępowanie ich nowszymi – w większości przypadków są to zmiany ułatwiające development oraz poszerzające jego możliwości. Skupmy się jednak na technologiach, przyjmując że język programowania należy do takiej właśnie kategorii.

  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 znajduje swoje zastosowanie w tworzeniu aplikacji skalowalnych, łączy w sobie solidność programowania funkcyjnego wspomnianego już Erlanga, składnię podobną do Ruby oraz zaawansowane funkcje dla metaprogramowania. Do największych firm, które go przyswoiły 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 tym samym roku co Elixir, 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 programistów określane są jako „high level languages” (Scala, C, C++, czy bardziej egzotyczne, takie jak Muriel, APL, czy Whitespace). Co więcej, przy odpowiednim czasie i materiałach, każdy z odrobiną zacięcia i wiedzy o programowaniu jest w stanie stworzyć swoją aplikację 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 firmy: Dropbox, SendGrid i 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")
}

   

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ż golang posiada 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, co 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.

   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.

Golang 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 firm, a także osoby, które w Go widzą przyszłość back-endu, starają się szukać wydarzeń oraz społeczności, w ramach których mogą wymienić swoje uwagi i spostrzeżenia oraz podzielić się doświadczeniem.

   Firma w której pracuje – GogoApps – także postanowiła zrzeszyć programistów i sympatyków Go, stwarzając dla nich forum wymiany informacji. 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. Podobne 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 (https://gophers.slack.com), Meetup.com (www.meetup.com/Golang-Warsaw) oraz IRC-u (na freenode. kanał ##golang-pl). Wymienione miejsca stanowią matecznik dla grupy profesjonalistów oraz entuzjastów Go, którzy chętnie odpowiedzą na pytania dotyczące technologii 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)

 

Oczywiście warto spojrzeć na naprawdę duże wydarzenia związane z technologią, 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 kolejne release’y i śledźmy nowinki w grupach poświęconych technologii spod znaku susła.

 

Źródła:


Edgar Czop          
New Business Manager

<p>Loading...</p>

Powiązane artykuły

Dziel się wiedzą ze 160 tysiącami naszych czytelników

Zostań autorem Readme

Simple SA

Java Developer (Mid/Senior)

medium

7 000 - 15 000 PLN

Kontrakt B2BUmowa o pracę

Praca zdalna 100%

Ważna do 26.02.2022

Dobrze
JavaSpringSpring Boot

Asseco Poland S.A.

Administrator / Starszy Administrator Systemów IT

medium

Brak widełek

Kontrakt B2BUmowa o pracę

Praca zdalna 100%

Ważna do 26.02.2022

Dobrze
PostgreSQLBash

Nokia

5G Automation Engineer, IODT

medium

Brak widełek

Umowa o pracę

Wrocław

Praca zdalna 100%

Ważna do 13.03.2022

Divante

Senior Vue.js Developer

senior

15 300 - 23 500 PLN

Kontrakt B2BUmowa o pracę

Wrocław

Praca zdalna 100%

Ważna do 13.03.2022

Dobrze
JavaScriptTypeScriptVue.js

T-Mobile Polska S. A.

Frontend Developer

medium

Brak widełek

Kontrakt B2B

Warszawa

Ważna do 26.02.2022

Bardzo dobrze
ReactReduxNode.js

Commerzbank - Centrum Technologii Cyfrowych w Polsce

Business Expert for Risk Applications

medium

Znamy widełki

Umowa o pracę

Łódź

Ważna do 26.02.2022

Dobrze
SQLMS Office
Początkująco
SAS / R / Python

Commerzbank - Centrum Technologii Cyfrowych w Polsce

Business Expert with German for Risk Analytics

medium

Znamy widełki

Umowa o pracę

Łódź

Ważna do 26.02.2022

Dobrze
MS Office
Początkująco
SQL / VBA / PythonQlik Sense / Qlik View / Arcadia

Hitachi Energy

Quality Assurance Engineer

medium

8 000 - 14 000 PLN

Umowa o pracę

Kraków

Ważna do 26.02.2022

Dobrze
automation testing .NET CoreSelenium
Początkująco
MS SQL

Commerzbank - Centrum Technologii Cyfrowych w Polsce

Business Expert with German for Risk Applications

medium

Znamy widełki

Umowa o pracę

Łódź

Ważna do 26.02.2022

Dobrze
MS OfficeSQL
Początkująco
SAS / R / Python