Elemele-dudki czyli HGW

Spoglądając na wytłuszczony tytuł felietonu, jak sądzicie Państwo, o czym dzisiejszy będzie traktował? Wpisując w wyszukiwarce internetowej hasło HGW otrzymujemy głównie odnośniki do wywiadów, polemik oraz innych spisanych materiałów z udziałem Hanny Gronkiewicz-Waltz. Miłośników polityki i finansów muszę rozczarować - niczego w tym klimacie nie będzie, bo się na tym nie znam, jak również nie mam czego pisać o tej pani, której zresztą także nie znam. Domyślnym Czytelnikom do wyboru pozostała więc tylko niezbyt przyzwoita alternatywa dla zastosowań tego skrótu. Czy rzeczywiście?

Spoglądając na wytłuszczony tytuł felietonu, jak sądzicie Państwo, o czym dzisiejszy będzie traktował? Wpisując w wyszukiwarce internetowej hasło HGW otrzymujemy głównie odnośniki do wywiadów, polemik oraz innych spisanych materiałów z udziałem Hanny Gronkiewicz-Waltz. Miłośników polityki i finansów muszę rozczarować - niczego w tym klimacie nie będzie, bo się na tym nie znam, jak również nie mam czego pisać o tej pani, której zresztą także nie znam. Domyślnym Czytelnikom do wyboru pozostała więc tylko niezbyt przyzwoita alternatywa dla zastosowań tego skrótu. Czy rzeczywiście?

W świecie tworzenia oprogramowania, które rozwijało się z początku tyle żywiołowo, co chaotycznie, ktoś wreszcie wypowiedział wojnę anarchii i ustanowiono inżynierię oprogramowania. Miała ona zwiększyć skuteczność procesu wytwórczego poprzez standaryzowanie pewnych metod. Jednym z tego objawów było wprowadzanie notacji nazewnictwa zmiennych, metod itp. Stylów jest wiele - jak zwykle - i tu także panuje moda na Wieżę Babel. Najbardziej specyficzną wydaje się być tzw. notacja węgierska, o ciekawej genezie, jak i nietuzinkowej manierze.

Czytając dokumentację języka C lub funkcji opartych na tym standardzie pochodzących z fabryk Microsoftu, napotykamy nazwy zmiennych w stylu hwndItem, lpszFile i temu podobne dziwolągi. To jest właśnie notacja węgierska, zainicjowana przez Charlesa Simonyi, pracownika tej firmy, a Węgra z pochodzenia. Programiści amerykańscy, patrząc na tak nietypowe nazewnictwo, w dużej mierze okrojone z samogłosek, mniemali, iż musi to chyba być co najmniej w języku greckim, jeśli nawet nie po węgiersku. Intuicyjnie byli niezwykle blisko prawdy. Ten drugi język jest dla naszych zdolnych przyjaciół zza oceanu równie niezrozumiały jak i dla nas. Ale słaba to pociecha. Niektórzy zaś programiści (stamtąd oczywiście) słyszeli uprzednio o notacji polskiej, służącej do zapisu działań arytmetycznych. Z tego konglomeratu skojarzeń urodziło się pojęcie notacji węgierskiej. Jej specyficzną cechą jest to, że każda zmienna ma na początku swej nazwy prefiks określający jej rodzaj. Na przykład "h" oznacza handle, czyli uchwyt, "w" - word, "g" - zmienną globalną, "wnd" - window, czyli okno. Stąd zmienna hwndItem przechowuje uchwyt okna. Oczywiście dalsza część nazwy jest już uznaniowa. Jedną z wad tego stylu jest brak standardów określających kolejność obowiązkowych prefiksów, co powoduje, że z równym powodzeniem można użyć złożenia "hgw", co i "gwh" lub "wgh". Mnie najbardziej wpada w ucho to pierwsze, chyba z oczywistych względów.

Ostatnio czytałem oryginalną i grubą jak cegła dokumentację producenta dotyczącą obiektowości w Visual Basicu 6.0. Firma nie dość, że nie zrezygnowała z notacji węgierskiej, to jeszcze posługiwała się - chyba złośliwie - przykładami, gdzie długość nazw zmiennych przekracza wszelką percepcyjną przydatność w warunkach polskich.

Dobrnąwszy do końca nazwy, zapomina się jej początek. Bo czy z dydaktycznego punktu widzenia zmienne noszące nazwy mintWithdrawalsMonthToDate lub mstrMothersNaidenName są dobrze zaimplementowanymi przykładami? Zamiast skupić się na meritum sprawy, człowiek zmaga się z rozszyfrowywaniem takich tworów językowych. Bywają książki, które w oryginale czyta się nie najlepiej, nawet jeśli nie są po węgiersku.


TOP 200