Nastoletni
Programiści

Logo Nastoletnich Programistów

Język Go – czy warto? Wprowadzenie.

Witam! Nigdy jeszcze nie pisałem żadnego bloga, więc proszę o wyrozumiałość.

Zajmę się tematem języka Go. Czym on jest, dlaczego warto się go nauczyć, jak stworzyć w nim prosty program „Hello World”, jak stworzyć sobie środowisko do pracy z nim i zamieszczę parę skryptów do zautomatyzowania sobie pracy.

Pragnę jeszcze tylko nadmienić, że ten wpis jest skierowany do użytkowników, którzy już potrafią programować w jakimś języku, ale jeśli nie potrafisz, to nie martw się. Do wszystkiego zrobiłem odnośniki, więc nawet jeżeli nie zrozumiesz tego wpisu, to i tak coś stąd wyniesiesz.

Czym jest Go i co potrafi?

Go (często nazywany Golang’iem dla odróżnienia od słowa „go”) jest językiem programowania opracowanym przez programistów z Google: Roberta Griesemera, Roba Pikea oraz Kena Thompsona.

Łączy w sobie łatwość pisania aplikacji charakterystyczną dla języków dynamicznych (np. Pythona, Lispa, C#’a oraz JavaScriptu) z wydajnością języków kompilowanych (np. C, C++).

Kompilacja w Go po pierwszym razie jest bardzo szybka w porównaniu do np. kompilacji w C++. Język ten posiada również wbudowany Garbage Collector, który bardzo ułatwia zarządzanie zasobami. Składnia Golang’a i budowa kodu nad wyraz przypomina to co znamy z JavaScriptu. Nie ma tu klas, ponieważ byty, które przyjdzie nam zadeklarować, to instancje struktur z przypisanymi do ich typów metodami – czyli deklarujemy typ jakiejś struktury, a następnie przypisujemy do jej typu różne metody. Przypomina to trochę tworzenie klasy ze zmiennymi, ale bez metod w C#, a następnie dodanie do tej klasy metod rozszerzeń. W Go można także tworzyć literały struktur, które bardzo przypominają literały obiektów z JavaScriptu. Konstruktorów i destruktorów tu nie ma, ale możliwa jest ich sztuczna implementacja poprzez funkcje czy też, jak już wspomniałem, metody przypisane do typów struktur z wykorzystaniem instrukcji defer. Obiektowość w Golangu realizowana jest za pomocą interfejsów.

Go do bólu ułatwia również zrównoleglanie wywołań. Nie trzeba zajmować czasu na wątki, rezerwacje zasobów, mutexy i resztę tego tałatajstwa. Zamiast tego Golang oferuje nam tzw. „goroutines” (które pozwalają na asynchroniczne uruchomienie danej funkcji poprzez dodanie przed jej wywołaniem instrukcji go) oraz daje nam kanały, które w bardzo dużym uproszczeniu działają jak wskaźniki. Możesz coś do nich wrzucić w jednym procesie i odczytać w innym. Go wspiera UTF-8, więc nie ma żadnych problemów z polskimi znakami.

Jak zainstalować Golanga?

Jeżeli doszedłeś/aś do tego etapu, to prawdopodobnie przekonał Cię mój wstęp. Bardzo mnie to cieszy. Teraz pokażę Ci jak zainstalować Golanga. Zrealizuję to w formie instrukcji.

  1. Wejdź na główną stronę projektu i przejdź do strony „Downloads”. 
  2. Przejdź do „Stable versions” i pobierz najnowszą, stabilną wersję .ZIP na twój komputer. 
  3. Przerzuć folder „go” z paczki ZIP do folderu C:\. U mnie był już folder ze starą wersją SDK do Golanga, więc ja tylko sobie zaktualizowałem.
  4. Teraz musisz dodać ścieżkę do C:\go\bin do zmiennych środowiskowych. Jeżeli wiesz jak to zrobić, możesz pominąć do punku 10.
  5. Wejdź we właściwości Komputera.
  6. Otwórz „Zaawansowane ustawienia systemu”.
  7. Otwórz „Zmienne środowiskowe”.
  8. Jeżeli nie masz zmiennej „Path”, utwórz ją za pomocą opcji „Nowa…”. Ja jedynie edytuje.
  9. Wciśnij przycisk „Nowy” i wpisz C:\go\bin. (Jeżeli jesteś na win 7/8, to wystarczy, że wkleisz tą ścieżkę i dodasz za nią znak ‚;’ do oddzielania ścieżek.
  10. Otwórz konsolę systemową (skrót WIN+R, wpisz cmd i wciśnij enter) i wpisz go version. Jeżeli pokazuje Ci się podobna informacja do mojej, oznacza to, że wszystko jest okej.

Jak skonfigurować sobie środowisko do pracy?

Wiesz już co to Go i potrafisz go poprawnie zainstalować. Czas napisać pierwszy program!

Pamiętasz jak napisałem, że zamieszczę parę skryptów do zautomatyzowania sobie pracy? Oto one:

goCreate.bat nazwaProjektu – służy do tworzenia nowych projektów

goPackage.bat nazwaPaczki – tworzy nowe paczki

goHere.bat – kiedy jesteś w folderze projektu i uruchomisz ten skrypt, projekt będzie gotowy do pracy, a kompilator będzie widział wszystkie twoje pliki.

createGoFile.bat – goPackage i goCreate wykorzystują go do tworzenia potrzebnych plików.

Wrzuć te pliki do folderu z twoimi skryptami (jeżeli takiego nie masz, stwórz go), a następnie dodaj ścieżkę do tego folderu do zmiennych środowiskowych („PATH”).

Dlaczego daje Ci te skrypty?

Projekty w Golangu należy zapisywać projekty w specjalnej strukturze z folderów (więcej tutaj). Ręczne tworzenie owej struktury za każdym razem jest niewygodne i może sprawiać problemy początkującym w Go.

Twój pierwszy program w Go.

Aby stworzyć projekt otwórz konsolę i wpisz goCreate "tutaj nazwa projektu" (możesz to zrobić poprzez przytrzymanie shiftu i wciśnięcie prawego klawisza myszy, a następnie wybranie opcji „Otwórz okno polecenia tutaj”). Gdy to zrobisz, wpisz go install i voilà, napisałeś Hello World w golang. Czy napewno? No nie do końca. Zrobiły to za Ciebie moje skrypty, jednak zapewne widzisz, że w folderze /src/ powstał folder główny projektu wraz z plikiem main.go. Tak jak w innych językach programowania ten plik steruje całym programem. Zawarta jest w nim funkcja main, która wywoływana jest jako pierwsza.

Struktura pliku main.

Przyjrzyjmy się strukturze naszego pliku. Na początku pliku zawsze opisane jest, do jakiego pakietu należy ten plik. Pakietów może być wiele. To coś jak przestrzenie nazw w C++ i C#. Deklaruje je się po prostu pisząc nazwę pakietu. Należy zapamiętać jedynie by zawsze trzymać pliki z danego pakietu w folderze takim jaka jest nazwa jego pakietu. Czyli, gdy dla pliku X.go zadeklarowany jest pakiet Y, to należy umieścić pliki, które mają zadeklarowany ten pakiet w folderze o nazwie Y. W przeciwnym wypadku można napotkać na problemy.

W środku zapisane są importy. W naszym pliku jest tylko jeden import – import fmt. Import to instrukcja preprocesora, która wkleja nam po prostu kod z danego pakietu (tak samo jak słówko „include” w C++ albo „using” w C#). Pakiet „fmt” to główny pakiet Input/Output języka Go. Coś jak iostream.

Na końcu jest już tylko sama funkcja main. Wygląda na bardzo prostą. Nie ma zapisanego typu, który zwraca. Między klamrami jest jedynie instrukcja fmt.Println("Hello World"). Ma ona za zadanie wypisać tekst na ekranie. Zawsze, gdy chcemy wywołać funkcje z danego pakietu, to nazwę funkcji należy poprzedzić nazwą pakietu i operatorem wyłuskania (kropki). Po skompilowaniu i uruchomieniu program wypisuje na ekranie „Hello World”.

Podsumowanie

Jak widać Golang to bardzo prosty i intuicyjny język. Nie miałem zamiaru nauczyć Cię go tu całego, a jedynie pokazać Ci namiastkę tego jak on wygląda w praktyce i co on potrafi. Moim zdaniem jest to świetny język nawet na start i warto się go nauczyć. Nie jest trudny do opanowania i do użytkowania. Warto też się go nauczyć chociażby dlatego, że na każdej platformie ten sam kod Golanga kompiluje się i działa tak samo, a tych platform jest sporo. Posiada on ogrom własnych bibliotek, a w dodatku społeczność, która go rozwija tworzy cały czas nowe.

Jeżeli chciałbyś/chciałabyś dowiedzieć się więcej lub nauczyć się tegoż wspaniałego języka programowania, to polecam Ci stronę.

STRONK

Ten autor jeszcze nie podzielił się czymś o sobie.

Zobacz wszystkie posty tego autora →

Komentarze