Witaj w świecie Go!

Na tej stronie znajdziesz informacje o tym jak zacząć programowanie w języku Go, szczegółowe omówienie języka oraz (w przyszłości) bogatą sekcję z przykładami.

Czym jest Go?

W listopadzie 2009 r. deweloperzy z Google pokazali światu nowy język programowania. Doczekaliśmy się języka kompilowanego, statycznie typowanego z nowoczesnym podejściem do współbieżności.

Warto poświęcić trochę czasu językowi, który łączy swobodę pisania, porównywalną do tej znanej z języków dynamicznych jak JavaScript czy Python, oraz szybkość wykonania na poziomie Java czy C++.

Celem tej strony jest dostarczenie informacji niezbędnych do nauki tego języka, po polsku.

Z czasem materiałów będzie przybywać. Jestem otwarty na wszelkie inicjatywy i porady, które pomogą popularyzować Go wśród rodzimych programistów.

Więcej o języku

Go jest przyjemny w użyciu bo ma:

To co osobiście mi się najbardziej podoba w Go to implementacja współbieżności. Nie posiadamy wątków explicite, jest za to instrukcja go, która przekształca zwykłą funkcję w gorutynę, z którą możemy się komunikować za pomocą kanałów (chan), lub domknięć (tzw. clousures, choć to nie najlepsze rozwiązanie...).

Nietypowe podejście do obiektowości. Zamiast klas i dziedziczenia mamy do dyspozycji proste structy i osadzanie. Struktura to zbiór właściwości i dopiętych do niej metod, które mają dostęp do właściwości i metod structów w nich osadzonych (lepiej to widać na przykładach). Co ciekawe nie ma odpowiednika klas abstrakcyjnych ich rolę pełnią interfejsy, które tradycyjnie są zbiorem sygnatur metod. Ciekawostką jest fakt, że nie musimy jawnie deklarować, że dany typ implementuje dany interface. Interface jest spełniony wtedy gdy zaimplementowane są jego wszystkie metody w danym typie.

Na uwagę zasługują także wyrażenia warunkowe i pętle, które różnią się od tych spotykanych w innych językach. Największą niespodzianką są niezapadalne switche. O ile w innych językach należy zaznaczyć kiedy chcemy wyjść już ze switcha o tyle w go musimy explicite napisać, że nie chcemy jeszcze z niego wychodzić. Stare podejście do switchy powodowało wiele trudnych do znalezienia błędów. Drugą niespodzianką jest to, że pętla “for” jest jedyną dostępną w języku. Na szczęście samego fora można napisać na wiele sposobów, które są równoważne w działaniu z innymi znanymi konstrukcjami zapętlającymi.

Warto się zainteresować tym językiem, jest on trafną odpowiedzią na wiele problemów postawionych w ostatnim dziesięcioleciu dotychczasowym językom. Wychodzi on na przeciw problemom współbieżności, skomplikowanym hierarchiom klas, ciężkiej kompilacji i czystości kodu.