Spis treści

Mój pierwszy program w Go

banner wygenerowany w go

Przypadkowe spotkanie z językiem Go

Trafiłam kilka dni temu na bardzo pochlebne opinie na temat statycznego generatora stron jakim jest Hugo. Tym razem, zamast z góry odrzucić głębszą analizę, pomyślałam, że w końcu wejdę na stronę Hugo w poczytam co nieco. Czytałam dokumentację, oglądałam piękne motywy i pomyślałam, że może kiedyś zmigruję mojego bloga… A przy okazji pomyślałam też, że może nie jest za późno na naukę kolejnego języka programowania.

Oto, co odkryłam:

  • Deno opiera interfejsy swojej biblioteki standardowej na bibliotece standardowej Go
  • Specyfikację czyta się lekko i przyjemnie
  • GoByExample.com przejrzałam szybko podczas obiadu
  • awesome-go to prawdziwe źródło do odkrywania bibliotek

Poznajemy się bliżej

Od razu pomyślałam, że muszę dotknąć i poczuć ten język pod palcami.

  • zainstalowałam go (w Ubuntu domyślnie instaluje sie 1.14)
  • zainstalowałam (fantastyczny!) vim-go i przejrzałam tutorial

Pierwsza randka - rysowanie

Kiedy widzę kredki, od razu chcę usiąść i rysować. No i zobaczyłam swoje nowe “kredki”:

  • go-colorful - biblioteka do przekształcania kolorów w różnych modelach i do generowania palet
  • gg - biblioteka do rysowania na “canvasie”

Czy nie szkoda czasu na romans?

Przecież są wakacje, ptaki śpiewają i w ogóle… Zresztą, ja uwielbiam uczyć się nowych języków programowania, poznawać nowe narzędzia, badać istniejące w danym języku “otoczenie”.

Biorąc pod uwagę moje obecne ograniczenia (tylko krótkie chwile przy komputerze i brak możliwości spędzienia na kodowaniu wielu godzin) tylko takie “romansowanie” wchodzi w grę: mały skok w bok raz na jakiś czas.

Nie mam czasu na wielkie projekty, a te małe mogę szybko zaimplementować. Szybko - bo:

  • składnia języka wydaje się bardzo prosta
  • kompilator śmiga
  • statyczna typizacja pozwala szybko wyłapać błędy

Pierwszy projekt

Napisałam małe narządko do generowania banera na mojego bloga.

Polecenie:

1
2
./banner -t "Sprawdzam" -st "jak się pisze w języku Go" -w 800 -h 400 -o jak_go.png -alg 7

generuje taki oto obrazek:

/jak_go.png

Repo

https://github.com/kamchy/banner

Czy warto?

Niekórzy ludzie dbają o dostarczanie bodźców intelektualnych swojej istocie szarej w mózgu poprzez rozwiązywanie szarad czy grę w Sudoku. Inni uczą się języków obcych (hm, powinnam zadbać o mój hiszpański). Dlaczego nauka i programowanie w nowym języku programowania nie miałoby być również sposobem na utrzymanie sprawności intelektualnej na starość?

Nie, żebym się jakoś szczególnie staro czuła. Ale już wiele lat temu spotkałam się z poglądem (i przyjęłam jako własny), że my - programiści - wręcz musimy uczyć się nowych języków po to, aby poszerzyć nasze postrzeganie dziedziny, w której pracujemy. Jeśli ktoś zna tylko Javę, trudno z nim dyskutować o programowaniu funkcyjnym i satysfakcji płynącej z pisania kodu w Lispie. Jeśli ktoś całe życie dłubał wyłącznie w Pythonie, trudno mu przestawić się na język ze statyczną typizacją kodu. I tak dalej.

Jeśli chodzi o możliwości zatrudnienia, to nie sądzę, żeby imponująca lista języków, które “znam” i wymieniam w CV w jakimkolwiek stopniu wpłynęła na decyzję rekrutera o przyjeciu mnie (lub nie) do pracy. Choć lista w miarę “ukończonych” projektów na GitHubie może mieć jakieś znaczenie. Dlatego pewnie warto sobie coś tam podłubać od czasu do czasu i wrzucić, dla satysfakcji albo jako backup.

W moim przypadku GitHub to taki zrzut prób, eksperymentów i ciekawostek, niezbyt się nadaje na “portfolio”, ale przestałam się tym przejmować i wrzucam.

A tak w ogóle, to co to znaczy “warto”? Być może lepszą inwestycją byłoby zgłębianie SQL-a (zawsze się przyda w pracy) czy odświeżenie wiadomości o Hibernate lub Springu, no ale… ale… hm. To po prostu nie jest zabawne. Człowiek nie żyje po to, żeby pracować.

A trochę radości też mi się w życiu należy, prawda? :)