Strona główna arrow Biuletyn arrow Biuletyn 31 arrow Felieton
Felieton

Odległe skojarzenia

Wysłuchawszy opowieści o tegorocznym sejmiku bocianów na łąkach pod Dobrzyniewem – przed ich odlotem do ciepłych krajów – postanowiłem, że w przyszłym roku muszę to obejrzeć. Jest to podobno zjawisko niesamowite. Ale jak dowiedzieć się, gdzie taki zlot może się odbyć? Będę musiał polegać na zaprzyjaźnionych ludziach spoza terenów miejskich. Bociany organizują bowiem swoje sejmiki czasami w jednym miejscu przez wiele lat by potem zmienić je nagle z niewiadomych dla nas przyczyn.
Wokół sejmików bocianich narosło wiele mitów. Jeden z nich wynikał pewnie z obserwowanych podczas tych sejmików bójek bocianów, które częstokroć kończą się śmiertelnie. Sądziło się, że bociany w ten sposób wymierzają kary za złamanie zasad współżycia obowiązujących w ich świecie. Ale przede wszystkim sejmik bociani to znak nieuchronnego upływu czasu – zbliżania się chłodów, przemijania…

Bocian jest nieodłącznym elementem naszej kultury i w naszych przekonaniach jest dobrotliwy i łagodny podczas, gdy tak naprawdę jest solidnym drapieżnikiem. Podobnie do jastrzębia. Ale dlaczego jastrząb nie buduje gniazd w bliskości ludzkich domostw? Dlaczego nie przechadza się po łące, na której trwają sianokosy? I to bocian jest symbolem samego nadejścia nowego życia symbolizowanego przynoszeniem nowo narodzonych dzieci. Dziwne.
Ale mnie zastanawia jak setki tych ptaków umawia się na spotkanie w określonym miejscu? Podobno są to miejsca zasobne w pokarm. A sejmik ma na celu solidne posilenie się przed długą podróżą. Ale kto wskazuje to miejsce? Kto ma decydujący głos co do wyboru i jak go przekazuje innym bocianom? Muszą przecież mieć jakiś sposób komunikacji? Czy na tych sejmikach tylko ucztują do syta czy też – jak to w sejmikach – dokonują jakichś wyborów? Niewiele wiemy na ten temat.
Problemem jest tu przede wszystkim międzygatunkowa bariera komunikacyjna. O ile zwierzęta porozumiewają się w obrębie swego gatunku, to już pomiędzy gatunkami raczej nie zachodzi taka komunikacja, poza instynktowym odczuwaniem możliwości istnienia wzajemnego zagrożenia. Natomiast my ludzie mamy rozbudowane możliwości komunikacyjne, a mimo to czasami nie potrafimy się ze sobą porozumieć.

Pozostawiając na boku nasze ludzkie słabości wzajemnej komunikacji warto spojrzeć na nasze próby komunikacji z wytworem naszych umysłów – z maszyną, jaką jest komputer. Jest to przykład mozolnej pracy w przełamywaniu bariery międzygatunkowej. Owocem tych prób jest cała masa języków programowania, które stają się coraz bardziej rozbudowane, coraz bardziej abstrakcyjne i wspierane przez bardzo rozbudowane, zintegrowane środowiska deweloperskie. Mało kto, poza wąską grupą producentów sprzętu komputerowego, programuje dziś w assemblerze, niegdyś podstawowym narzędziu programistów, gdzie programowało się poszczególne rejestry jednostki ALU oraz samodzielnie przesyłało się dane z pamięci do rejestrów. Dziś programista wcale nie musi (chociaż powinien) znać budowy procesora ani listy jego instrukcji, aby z powodzeniem wykonywać swój zawód. Wszystkie te języki programowania, poczynając od assemblera a na C# kończąc, mają jedną zasadniczą wadę. Aby z nich korzystać z sukcesem, trzeba się sporo uczyć. Ale to tylko wstęp. Trzeba posiąść doświadczenie w korzystaniu z nich co jest porównywalne z wyszkoleniem pilota myśliwca. Poza tym zapis programu komputerowego w dowolnym języku nie jest zrozumiały dla przeciętnego zjadacza chleba. Czy wobec tego są jakieś języki, które nie posiadają tej wady? Odpowiedź jest twierdząca. To grupa języków SGML czyli Standard Generalized Markup Language. Wynalazcą tej grupy języków jest Charles F. Golofarb.

Historia tego wynalazku rozpoczyna się w późnych latach sześćdziesiątych. To czas początków ery kosmicznej, wojny w Wietnamie, burzliwych protestów studenckich, era The Beatles, a u nas szara gomułkowska rzeczywistość PRL-u z kolejkową codziennością i z niechlubnym marcem 68 w tle. Ale, aby nie było już tak zupełnie smutno i bez wyobraźni – ku uciesze społeczności – z burzliwym rozwojem kawałów politycznych (żeby nie było wrażenia, że w tym czasie był zastój umysłowy społeczeństwa).

W tym czasie Charles nie ma wcale pojęcia o językach programowania ale zastanawia się jak napisać zwartą instrukcję dla… pilota rajdów samochodowych (ech, w jakże różnych światach wówczas żyliśmy). Rzecz sprowadzała się do takiej formy zapisu, aby unikać powtarzalnych fragmentów tekstu, a zastosować coś, co w łatwy sposób pozwoli pilotowi informować kierowcę o wykonywaniu następnych czynności (czyż nie przypomina to programowania komputera?). Ktoś z jego znajomych spoglądając na tę instrukcję, zauważył, że jest podobny do programu komputerowego. „Do programu komputerowego? A co to jest?” zapytał Charles. Jest to znamienne zdanie. Jest to bowiem również geneza powstania rodziny języków SGML. Zrozumiałość i dostępność nie tylko dla wtajemniczonych. Rozpoczyna pracę w IBM, ale nie jest wcale liderem nowych rozwiązań, a po prostu instaluje u klientów systemy księgowe. Potem pracuje dla lokalnej gazety instalując system edytorski. Cały czas zastanawia się jak uprościć system składu tekstu. Czyli mówiąc językiem zrozumiałym dla wszystkich co zrobić, aby zamiast pisać w tekście, że do następnego akapitu użyć formatu o tajemniczej nazwie „format-17” po prostu napisać, że ma to być „nagłówek”. Prawda, że proste?

Tak powstaje GML (Genralized Markup Language), protoplasta SGML. Idea była prosta: zastąpić zawikłane kodowanie zrozumiałym dla człowieka opisem nie naruszając funkcjonalności całego dokumentu. Tłumaczenie tego skrótu zacznę nietypowo – od końca. Słowo „language” to po prostu język. Warto teraz odkryć znaczenie słowa „markup” w nazwach GML i SGML. Angielskiemu słowu „markup” to w naszym języku odpowiada słowo „znacznik”. Idea tego języka była bardzo prosta. Pierwotnie miał służyć do formatowania tekstu oraz jako wspomaganie dla systemów przeszukujących dokumenty tekstowe. Formatując tekst należy umieszczać go w zrozumiale opisanych znacznikach. Znaczniki te powinny być jednocześnie zrozumiałe i dla człowieka i dla programu komputerowego czytającego ten sam tekst (czyli w języku programistów parsującego dokument GML). W taki oto prosty sposób osiągnięto rzecz wydawałoby się niemożliwą do osiągnięcia. Dwa zupełnie od siebie odmienne gatunkowo byty porozumiewają się ze sobą i nie jest do tego potrzebna specjalna umiejętność ze strony człowieka poza umiejętnością czytania. Genialne.

Ale co z tym wspólnego mają bociany? Pozornie nic. Ale one przecież czynność sejmikowania wykonują w sposób powtarzalny, w miejscach które spełniają określone warunki (bogactwo pożywienia) i pewnie też sejmikują w jakimś określonym dla siebie celu – a więc wykonują Logiczny Program. Być może celem sejmikowania jest również poznanie siły wspólnoty (zawartej w liczebności uczestników) dla wchodzącego w życie (i w bardzo długi lot) młodego pokolenia.

Teraz czas na następne słowo do rozszyfrowania nazwy SGML. Tego słowa nie trzeba tłumaczyć na nasz język – to słowo „standard”. Oznacza to uznanie przez wszystkich jako miłościwie nam panujący. Jest to możliwe jedynie dzięki pracy całej społeczności. Komitety ISO niczym sejmiki bocianie zlatują się i zastanawiają jak rozwinąć idee aby, mogłyby być używane przez jak najszerszy krąg odbiorców. I w tym tkwi siła społeczności. I na koniec słowo „generalized” czyli uogólniony. W nim tkwi również wielka siła. W oparciu o ten prosty, uogólniony schemat SGML można budować całą gamę języków w zależności od potrzeb. Tak powstał dokument XML, najmłodsze, cudowne dziecko SGML, który jest stosowany coraz częściej i czasami nawet nie zdajemy sobie z tego sprawy oglądając instrukcję obsługi wiertarki. Tak powstały HTML oraz XHML, języki, bez których Internet nie miałby takiego zasięgu i nie oferowałby takich możliwości. Nie byłoby wcale słowa Internet w naszym języku. A gogle do tej pory kojarzyłyby się wyłącznie z okularami narciarskimi, a nie z… No, właśnie.

Marek Powichrowski

 
 
 
Copyright © 2007 Stowarzyszenie Elektryków Polskich Oddział Białostocki
Wszelkie prawa zastrzeżone.
Design by MedLAN & pixelpin.com