Notacja Węgierska - rehabilitacja?

Przyznam się publicznie (a co mi tam, i tak moja „reputacja” nie istnieje) — kiedy przeczytałem Making Wrong Code Look Wrong powstała mi w głowie myśl przesłaniająca wszystkie inne: jak można być na tyle głupim, żeby bezkrytycznie dać sobie wmówić, że Charles Simonyi był na tyle głupi, żeby wymyślić „notację węgierską” tak, jak to zostało przedstawione światu..?

Załóżmy przez moment, że jeszcze nic nie wiemy o notacji węgierskiej, że nie wiemy jak bardzo świat jej nienawidzi i jak bardzo Microsoft się przy niej przez lata upierał i jak koszmarnie beznadziejny kod powstaje przy jej zastosowaniu. Podchodząc do sprawy z czystym umysłem i nie używając określenia HN każdy w miarę inteligentny programista musi się zgodzić, że stosowanie w nazwach zmiennych fragmentów (choćby i nawet prefiksów) mówiących o semantyce danej zmiennej nie jest złym pomysłem. Generalnie wiadomo od lat, że stosowanie znaczących nazw zmiennych jest kluczowe dla ogarnięcia kodu i utrzymania jego jakości. A przecież colBrutto, ibOK czy sqlArticles brzmi nie gorzej niż BruttoKolumna, OkImageButton, ArticlesSelect, a na pewno lepiej niż brutto, ok czy art. Mam wrażenie, że i tak większość z nas stosuje takie nazwy choćby dlatego, żeby pogodzić wmawiane nam przez lata przykazanie „nie będziesz stosował nic nie mówiących nazw zmiennych o zasięgu dalszym niż pół ekranu” z naturalną tendencją do pisania skrótami i szybko.

Tymczasem szperanie w historii programowania i odgrzebywanie faktów i sensu słów zamaskowanych przez kretyńską propagandę ujawnia, że nazwa zmiennej sqlArticles jest właśnie zgodna z oryginalnym założeniem tego, co zostało nazwane notacją węgierska. Nazwa, która niesie nie informację o typie zmiennej, która to informacja od lat do niczego nie jest nikomu potrzebna i działa na myślących programistów jak płachta na byka, tylko o jej rodzaju, jej merytorycznym znaczeniu, o jej semantyce. sqlArticles = „zapytanie SQL wybierające artykuły”. Co z tego, że typu String czy StringBuilder czy jeszcze jakiegoś innego..? To sql... czyli coś, co zamierzam „odpalić” na bazie. Proste, łatwe i nawet dosyć przyjemne.

Niestety jak czytamy we wspomnianym artykule:

Simonyi mistakenly used the word type in his paper, and generations of programmers misunderstood what he meant.

What a shame... :-(

Komentarze

#1 | 2005.06.06 18:47 | rm

troszke off-topic, ale pozostajemy w zakresie razenia 'interesujacego' kodowania: http://mindprod.com/unmain.html. dokument jest niesamowity, czytalem i nie wierzylem wlasnym oczom. ale w trakcie smialem sie na cale gardlo, bo spojrzcie chocby na to: http://mindprod.com/unmainnaming.html (jeden z polecanych sposobow na nazywanie zmiennych to kupno ksiazki '20001 imion dla twojego dziecka' :) pozycja obowiazkowa dla kazdego programisty! :D

 

Uwaga: Ze względu na bardzo intensywną działalność spambotów komentowanie zostało wyłączone po 60 dniach od opublikowania wpisu. Jeżeli faktycznie chcesz jeszcze skomentować skorzystaj ze strony kontaktowej.