W poprzedniej odsłonie niniejszej kolumny wspominałem klasyczną pozycję autorstwa Brian'a W. Kernighan'a oraz Dennis'a M. Ritchiego: Język ANSI C. Dziś na łamach Klubu Dobrej Książki chciałbym przedstawić wyjątkowy dla mnie tytuł, nawiązujący do wspomnianego wyżej opracowania: Język Go. Poznaj i programuj. W jaki sposób Język Go nawiązuje do Języka ANSI C? To, co z miejsca rzuca się w oczy, to podobny tytuł oraz wspólny autor (Brian W. Kernighan); jednakże po zagłębieniu się w lekturę opracowania okazuje się, że podobieństw jest znacznie więcej, o czym za moment napiszę więcej. Zanim przejdę do szczegółowego omówienia zawartości książki, muszę przyznać się, że język Go jest moim programistycznym odkryciem tego roku. Jego naukę rozpocząłem zgodnie z konsekwentnie stosowaną zasadą zaczerpniętą z Pragmatycznego Programisty, która brzmi: „co rok poznaj nowy język programowania”. Wybór tym razem padł na Go i mówiąc szczerze, jestem nim zachwycony. W szczególności urzekł mnie pragmatyczny charakter tego języka połączony ze sporą dawką innowacji oraz z rewelacyjną (i niezwykle bogatą) biblioteką standardową. Być może właśnie dlatego książkę Język Go. Poznaj i programuj pochłonąłem z wielkim zainteresowaniem. Język Go nazywany jest często językiem C XXI-go wieku. Książkę Język Go można w tym kontekście nazwać podręcznikiem programowania na miarę XXI-go wieku. Opracowanie to strukturą oraz poziomem trudności nawiązuje do Języka ANSI C. Startując z nieśmiertelnym przykładem Witaj Świecie, autorzy szybko przechodzą do bardziej złożonych tematów i przy każdej nadarzającej się okazji przemycają w tekście cenne, nowoczesne wskazówki dotyczące stylu i techniki programowania. Warto w tym miejscu wspomnieć, że Go w stosunku do C jest językiem o wiele bogatszym, zarówno w kontekście składni, jak i biblioteki standardowej. W efekcie krzywa nauki tego języka jest bardziej stroma – co też znajduje swoje odzwierciedlenie w opracowaniu. Pierwszy rozdział książki (Przewodnik) stanowi bogate wprowadzenie, którego celem jest wzbudzenie w czytelniku zainteresowania nowym językiem oraz jego możliwościami. Czytając go, nauczymy się obsługiwać wiersz poleceń, generować animowane GIF-y, pobierać zawartość zadanych adresów URL (zarówno w trybie sekwencyjnym, jak i równoległym) i stworzyć prosty serwer WWW – wszystko to za pomocą języka Go oraz jego biblioteki standardowej. Kolejne sześć rozdziałów to szczegółowy przegląd podstawowych elementów, z których buduje się programy pisane w Go. Są to po kolei:

  • instrukcje sterujące,
  • podstawowe typy danych,
  • typy złożone,
  • funkcje,
  • metody,
  • interfejsy.

  Kolejne dwa rozdziały poświęcono mechanizmom zrównoleglania programów oferowanych przez Go. W szczególności mowa tutaj o funkcjach goroutine i kanałach oraz o obsłudze współbieżności ze współdzieleniem zmiennych. Rozdział 10-ty omawia pakiety oraz silnie powiązane z językiem narzędzie go, zaś rozdział 11-ty: wbudowane w język udogodnienia wspierające proces testowania (między innymi: obsługa testów jednostkowych, badanie pokrycia testami, funkcje benchmarkujące oraz profilowanie). Rozdział 12-ty przedstawia szczegółowo wbudowany w język Go mechanizm refleksji. Książkę zamyka rozdział 13-ty omawiający kwestie związane z programowaniem niskopoziomowym. Podsumowując: poziom techniczny książki jest bardzo wysoki, a jej lektura wymagająca – autorzy stawiają czytelnikowi wysoką poprzeczkę (podobnie jak w przypadku opracowania Język ANSI C). Jednak ten, kto solidne przestudiuje tę pozycję, posiądzie solidny zastrzyk wiedzy, zarówno na temat samego języka Go, jak i w tematach powiązanych z jego głównymi zastosowaniami: programowaniem sieciowym oraz przetwarzaniem równoległym. Bardzo polecam zarówno język Go, jak i prezentowaną książkę – przede wszystkim osobom, które miały już styczność z programowaniem, a chciałyby ugruntować i poszerzyć swoją wiedzę. Nauka języka Go to w mojej opinii bardzo cenne doświadczenie, zaś poznawanie go za pośrednictwem omawianej tu książki to dodatkowo prawdziwa przyjemność!  

Rafał Kocisz

Magazyn Programista

Omawiana książka:

  Tytuł: Język Go. Poznaj i programuj Autor: Alan A. A. Donovan, Brian W. Kernighan Stron: 360 Wydawnictwo: Helion