Ćwierćwiecze

Mija właśnie 25 lat od dwóch bardzo ważnych wydarzeń w rozwoju informatyki. Właściwie nie wiem dlaczego nie organizuje się z tej okazji hucznych uroczystości i solennych seminariów. Może wynika to stąd, że ludzie, którzy w znacznej mierze przyczynili się do tego rozwoju nie są już pracownikami żadnej znaczącej firmy lub już nie żyją.

Mija właśnie 25 lat od dwóch bardzo ważnych wydarzeń w rozwoju informatyki. Właściwie nie wiem dlaczego nie organizuje się z tej okazji hucznych uroczystości i solennych seminariów. Może wynika to stąd, że ludzie, którzy w znacznej mierze przyczynili się do tego rozwoju nie są już pracownikami żadnej znaczącej firmy lub już nie żyją.

Pierwsza okazja do obchodów to 25 lat Unixa. W roku 1969 wydawało się, że świat osiągnął szczyty rozwoju technologicznego. Amerykanie wysłali (i sprowadzili z powrotem) człowieka na Księżyc. Kontestacja młodzieżowa w Europie i USA doprowadziła do zmiany poglądów na sposób życia - pojawiła się subkultura hipisów. Technika

komputerowa była już mocno rozwinięta, moc obliczeniowa dużych komputerów wystarczała do obsługi nawet największych ówczesnych aplikacji. Jeżeli jednak ktoś chciał zapewnić sobie lepsze warunki pracy na stosunkowo prymitywnym (patrząc na to z perspektywy 25 lat) sprzęcie komputerowym, to musiał sam je sobie przygotować, gdyż niektóre komputery dostarczane były bez żadnego systemu peracyjnego. Samo pojęcie systemu operacyjnego dopiero się zresztą rodziło.

Nie nastąpiła jeszcze era gier komputerowych. Zainteresowani nimi hakerzy i amatorzy musieli pisać je sobie sami. Zresztą gry komputerowe długo stanowiły pole doświadczeń programistów, próbującyh swe możliwości w walce z durnym komputerem.

Jednym z takich programistów był Ken Thompson. Wspólnie z Dennisem Ritchie poprawiali sobie warunki pracy a jednocześnie pisali grę Space Travel, inspirowaną niedawnymi sukcesami swych ziomków. Ponieważ gra okazała się trudna do kontrolowania w spartańskich warunkach operacyjnych komputera PDP-7, Thompson i Ritchie opracowali system operacyjny, będący prapoczątkiem Unixa.

Filozofia tego systemu była zresztą niesłychanie prosta. Sam system dostarczał użytkownikowi jedynie systemu plików (sposobu zapisu plików na nośniku magnetycznym) i kilku zasadniczych narzędzi, ułatwiających pisanie aplikacji w asemblerze. Inne potrzebne narzędzia należało stworzyć sobie samemu i traktować je jako część nowego systemu. Spowodowało to burzliwy i słabo kontrolowany rozwój Unixa, przez cały pionierski okres jego rozwoju, tj. gdzieś do roku 1975. Sama nazwa Unix zaczęła zresztą dość prędko odnosić się do całej rodziny systemów operacyjnych o tym samym rodowodzie i podobnych cechach funkcjonalnych.

Druga ważna rocznica to ogłoszenie przez E.F. Codda (pracownika IBM) reguł określających relacyjny model baz danych. Początek jego artykułu (pojawił się w IBM Research Journal) pobrzmiewał wyraźną troską o użytkownika baz danych: "...użytkownik powinien być chroniony od potrzeby poznawania wewnętrznej reprezentacji danych w bazie. Na działania użytkownika nie może mieć wpływu zmiana wewnętrznej reprezentacji bazy".

W owym czasie kod aplikacji był ściśle związany z realizacją struktur danych. Co gorsza każda aplikacja często posługiwała się specyficzną dla niej strukturą danych, co uniemożliwiało wspólne wykorzystywanie danych. Opracowanie aplikacji było długotrwałe, kosztowało dużo, eksploatacja również była kosztowna a dowolna zmiana wymagań w trakcie opracowywania programu oznaczała praktycznie rozpoczynanie od nowa. Nie było zdefiniowane pojęcie zgodności danych w bazie. Model relacyjny obiecywał rozwiązanie tych problemów a także dawał inne korzyści w biznesie.

Od tego momentu datuje się szybki rozwój systemów zarządzania relacyjnymi bazami danych, gdyż programiści i użytkownicy zdali sobie sprawę, że dostają do ręki potężne narzędzie, pozwalające na oderwanie się od komputera i jego uwarunkowań, a więc umożliwiające przenośność aplikacji.

Wydawało by się, że w ciągu 25 lat istnienia modelu rozwiązaliśmy już wszystkie problemy. Tak jednak nie jest. Nadal płacimy za grzechy młodości. Nadal przy opracowaniu współczesnych aplikacji trzeba uwzględniać istnienie starych systemów baz danych.

Można by zapytać dlaczego nadal musimy walczyć z zaszłościami sprzed ćwierci wieku? Czy model relacyjny dostarczył takich korzyści, jakich oczekiwano? Dlaczego nadal popularne są modele nierelacyjne? Co to znaczy termin "postrelacyjne" pojawiający się w opisie niektórych baz? Pytań można zadać więcej, ale chyba należy na nie odpowiadać w innym miejscu.

25 lat to dostatecznie długi okres, aby sprawdzić przydatność idei i ich technicznych realizacji. Wydaje się, że zarówno twórcy Unixa, jak i E.F. Codd - twórca modelu relacyjnego bazy danych - wykazali wyjątkową

dalekowzroczność, proponując systemy, które nadal stanowią najważniejsze rozwiązania w technice komputerowej.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200