Manewry wokół WWW

Przeglądarki i całe WWW wywodzą się w prostej linii od protoplastów zaprojektowanych do innych celów czy wymagań i nie zawsze rozwijały się w pożądanym kierunku. Dzisiaj to dziedzictwo jest raczej przeszkodą niż atutem.


Przeglądarki i całe WWW wywodzą się w prostej linii od protoplastów zaprojektowanych do innych celów czy wymagań i nie zawsze rozwijały się w pożądanym kierunku. Dzisiaj to dziedzictwo jest raczej przeszkodą niż atutem.

Właśnie mija piętnaście lat od wprowadzenia do obiegu Mosaica, pierwszej popularnej przeglądarki stron WWW. Od tego czasu wiele aspektów Internetu zmieniło się radykalnie, ale podstawowy mechanizm, oparty na wykorzystaniu przeglądarek, które na różnych platformach mają interpretować hipertekst uzupełniony o znaczniki HTML, pozostał bez większych zmian. Ta wsteczna kompatybilność nie ułatwia tworzenia współczesnych stron internetowych, bardzo różnych od tych, do których aktualnie używany mechanizm był zaprojektowany. Coraz bardziej potrzebne jest wprowadzenie czegoś nowego, lepiej odpowiadającego ambicji projektantów stron i oczekiwaniom odwiedzających.

Przerośnięta popularność

Warto przypomnieć, że w zamiarach swoich twórców WWW nie miało być uniwersalnym medium do publikacji. Wyjaśnił to Tim Berners-Lee w dokumencie Information Management: A Proposal. Chodziło zapewnienie naukowcom CERN-u, pracującym w laboratoriach na całym świecie, dostępu do scentralizowanego i stale uaktualnianego ośrodka wymiany informacji. Jego HTML był maksymalnie prostym połączeniem tekstu z niewielką liczbą - około dwudziestu - znaczników, przeznaczonych do wyróżnienia hierarchicznych nagłówków, uporządkowanych i nieuporządkowanych list, cytatów i adresów.

Całość sprawiała wrażenie dziecięcej zabawki używanej przez poważnych autorów. Wewnętrzna prostota i nacisk na zawartość tekstową miały duży wpływ na kształt pierwszych stron WWW. Wkład projektanta na nie był znikomy. Taka była hierarchia celów. We wspomnianym dokumencie określano je w taki sposób: "Powinniśmy pracować nad uniwersalnym, powiązanym systemem informacji, dla którego ogólność i przenośność mają być ważniejsze od efektownych technik graficznych". Zakładano, że nie HTML ma decydować o wyglądzie strony, przenosząc na przeglądarkę wszystkie decyzje o tym, jak poszczególne znaczniki będą interpretowane. To była reakcja na inne języki znacznikowe, TeX i PostScript. Oba dają autorowi dużo większe możliwości panowania nad szczegółami wyglądu strony, ale z tego powodu są bardzo skomplikowane dla niewtajemniczonych, którzy musieliby poświęcać więcej uwagi formatowaniu niż informacyjnej funkcji tekstu. Rezygnacja ze znaczników prezentacyjnych ułatwiała autorom między innymi stałe uaktualnianie informacji i praktycznie umożliwiała zbudowanie wyszukiwarek.

Ślepy zaułek

Berners-Lee umyślnie ignorował aspekty projektowe, ale one szybko upomniały się o swoje prawa. W lutym 1993 roku Marc Andreessen, szef programistów w zespole projektującym Mosaica, pierwszą graficzną przeglądarkę, zaproponował "nowy opcjonalny znacznik HTML", który miał umożliwić umieszczenie na stronie GIF-ów i JPEG-ów. Berners-Lee protestował, chcąc sfinalizować oryginalną, zorientowaną tekstowo wersję HTML i dopiero w następnej umożliwić dodawanie grafiki. Dzisiaj wiadomo, że Andreessen "uciekł do przodu", wymuszając wpisanie swojej koncepcji do pierwszej, jeszcze szkicowej propozycji standardu HTML, opublikowanej w czerwcu 1993 roku. Pozwalając HTML-owi obsługiwać dowolną grafikę w ten sam sposób, co tekst, Andreessen i Mosaic zbliżyli WWW do medium publikacyjnego, z większą możliwością wpływu na wygląd strony. Proste narzędzie do wyszukiwania informacji zeszło na drugi plan. Wprowadzając te zmiany do HTML-u, Andreessen wypuścił dżina z butelki.

W roku 1994 ton jego wypowiedzi na fachowych forach zmienił się. Odpowiadając na nieuchronne pytania pionierów projektowania, dlaczego ich strony wyglądają różnie w Lynksie i Mosaicu, stworzył z tej różnicy zasadę, twierdząc, że w HTML-u autor dokumentu nie ma wpływu na jego postać. Ta zasada została konsekwentnie zrealizowana w następnym Mosaicu i jego następcy Netscape Nawigatorze, przeglądarce, która na długo zdominowała wyobraźnię zarówno użytkowników, jak i Billa Gatesa. To ona uczyniła z WWW zjawisko o światowym zasięgu.

W Nawigatorze starano się zwiększyć kontrolę nad wyglądem, wprowadzając nowe atrybuty do starych znaczników i - co ważniejsze - dodając nowe, np. określające wielkość i krój czcionek, a później następne, które miały pomagać zarządzać wyglądem strony. Te rozszerzenia, pierwotnie opcjonalne, szybko stawały się standardem. Zwiększenie możliwości projektowania wyglądu zbliżało WWW do innych mediów, ale kosztem utraty ciężko wywalczonej przez Bernersa-Lee pierwotnej prostoty i oddzielenia treści od formy. Mniej więcej w tym samym czasie z pola widzenia wyparował przeciętny użytkownik, który umiał przygotować stronę i jego miejsce zajął profesjonalny projektant. Znikły proste struktury hierarchiczne, zastąpione przez absurdalnie zagnieżdżone konstrukcje.

Te zmiany można by wybaczyć autorom nawigatorowego HTML-u, gdyby rzeczywiście prowadziły do powstania solidnej platformy projektanckiej, ale do tego było bardzo daleko, coraz dalej. Sterowanie wyglądem okazało się bardzo słabe w porównaniu chociażby z precyzyjnym PostScriptem, a mnogość podobnych funkcji, w które przeglądarka obrastała jak tocząca się śnieżna kula, raczej utrudniała wybranie odpowiedniego narzędzia. Pojawienie się Internet Explorera i innych konkurentów jeszcze bardziej pogłębiło chaos. Każdy z nowych graczy wprowadzał swoje nowe, oryginalne i niekompatybilne funkcje. Projektanci stron siwieli, usiłując tworzyć strony wieloplatformowe - jedynym sposobem rozwiązania łamigłówki było przeprowadzenie czasochłonnych testów. Zawodziły próby utworzenia wspólnego mianownika dla wielu przeglądarek i ograniczenia używania funkcji formatujących do tego zbioru. Tak totalne oparcie się na rozszerzeniach Andreessena samo w sobie było nieszczęściem i prowadziło wprost do absurdu w postaci wykorzystywania GIF-ów do prezentowania ozdobnego tekstu. W ten sposób pochowano wizję HTML-u jako żywego formatu tekstowego, poddającego się wyszukiwarkom.

CSS na ratunek

Wynalazca WWW Tim Berners-Lee.

Wynalazca WWW Tim Berners-Lee.

Uporządkowanie zamętu, który trwał prawie całą dekadę, wymagało trudnego powrotu do korzeni i pierwszych zasad, sformułowanych przez Bernersa-Lee. Dokonywał się on pod auspicjami W3C (World Wide Web Consortium), które Berners-Lee założył specjalne w celu zapobiegania temu rodzajowi gmatwania. Konsorcjum wzięło się za anarchię rozmaitych udoskonaleń w roku 1997 - w zaleceniu HTML 3.2 ustalono i skodyfikowano rozszerzenia, a potem w wersji 4.0 część usprawnień uznano za przestarzałe, zalecając wycofanie ich z powszechnego użycia. W 2001 roku zarekomendowano XHTML 1.1, przeróbkę HTML-u, idącą w kierunku oparcia go na XML-u. W tej rekomendacji zaleca się zrezygnowanie ze znaczników opisujących wygląd strony.

Prezentacja tekstowa jest teraz obsługiwana przez arkusze stylów według propozycji, którą Andreessen swego czasu odrzucił. Cascading Style Sheets (CSS) zaproponował w 1994 roku inny wychowanek CERN-u, Hĺkon Wium Lie, a W3C je zaadaptował. CSS oferują ogromny postęp w kwestii zgodności, wydajności i elastyczności formatowania tekstu. W 1998 roku ich druga rekomendacja została uzupełniona o sterowanie rozplanowaniem elementów na stronie, co wyeliminowało kolejną porcję netscape'owskich znaczników. Formatowanie tekstu i wygląd całej strony mogą być zdefiniowane w oddzielnych, ale związanych plikach CSS, zachowując w ten sposób warunek odseparowania treści od prezentacji.

XHTML i CSS to duży postęp, co nie oznacza ostatniego słowa w obsłudze współczesnych stron internetowych. Pierwszy zaprojektowano specjalnie w celu pozbycia się zbędnych pozostałości w specyfikacji HTML 3.2 i możliwie maksymalnego zbliżenia do jego oryginalnego rdzenia strukturalnego. Niewielka liczba znaczników, które pozostały, nie wystarczy do obsługi współczesnej strony. Również w tym wypadku decyduje W3C, które już dziesięć lat temu wydało pierwszą rekomendację dla XML-u (eXtensible Markup Language), który ma wypełnić wspomnianą lukę.