Gość (83.4.*.*)
Wyobraź sobie połowę lat 90. Internet dopiero raczkuje, strony są szare, a szczytem techniki jest migający tekst i kolorowe tła. W tym czasie powstaje ambitny projekt HTML 3.0, który miał wprowadzić sieć na zupełnie nowy poziom. Jednym z jego najbardziej rewolucyjnych elementów był znacznik <math>, mający pozwolić na natywne renderowanie skomplikowanych wzorów matematycznych bezpośrednio w przeglądarce. Choć pomysł brzmiał genialnie, szybko stał się koszmarem dla programistów.
Głównym problemem nie był sam tekst, ale sposób, w jaki matematyka jest zbudowana. Wzory to nie tylko ciąg znaków pisanych od lewej do prawej. To skomplikowane struktury dwuwymiarowe: ułamki z kreskami o różnej długości, pierwiastki obejmujące całe bloki tekstu, indeksy górne i dolne, które muszą być mniejsze i odpowiednio wypozycjonowane.
W 1995 roku silniki renderujące przeglądarek (takich jak wczesny Netscape Navigator czy Internet Explorer) były niezwykle prymitywne. Obsługiwały głównie prosty tekst i podstawowe tabele. Implementacja znacznika <math> wymagałaby stworzenia zupełnie nowego silnika składu, który potrafiłby dynamicznie obliczać wysokość i szerokość każdego elementu wzoru, a następnie układać je w "pudełka" (tzw. box model), które nachodzą na siebie lub są od siebie zależne. Dla ówczesnych komputerów, dysponujących znikomą mocą obliczeniową, takie renderowanie w czasie rzeczywistym było ogromnym obciążeniem.
Kolejną barierą, która pogrzebała znacznik <math> w HTML 3.0, był brak standardowych fontów matematycznych. Aby wzór wyglądał profesjonalnie, przeglądarka musi mieć dostęp do specyficznych glifów: długich nawiasów, symboli całek, które mogą się rozciągać, czy znaków sumowania.
W tamtym czasie systemy operacyjne Windows czy Mac OS nie posiadały wbudowanych zestawów znaków, które mogłyby to obsłużyć. Twórcy przeglądarek musieliby albo dołączać własne fonty do instalatora (co zwiększałoby jego wagę w czasach modemów 14.4 kbps), albo liczyć na to, że użytkownik sam je zainstaluje. Bez ujednoliconego standardu czcionek, ten sam wzór mógł wyglądać zupełnie inaczej na różnych komputerach, co w nauce jest niedopuszczalne.
Nie bez znaczenia był kontekst historyczny. Połowa lat 90. to czas brutalnej walki między Netscape a Microsoftem. Obie firmy skupiały się na funkcjach, które przyciągały masowego użytkownika: obsłudze grafiki, ramkach (frames), animacjach czy obsłudze skryptów.
Matematyka była postrzegana jako niszowa potrzeba akademicka. Dave Raggett, główny architekt HTML 3.0, chciał, aby sieć służyła nauce, ale rynek zweryfikował te plany. HTML 3.0 uznano za zbyt "napuchnięty" i skomplikowany. W efekcie standard ten nigdy nie wszedł w życie w całości. Został zastąpiony przez znacznie uboższy, ale łatwiejszy do wdrożenia HTML 3.2, który całkowicie porzucił znacznik <math>.
Zamiast natywnego znacznika w HTML, świat naukowy musiał radzić sobie inaczej. Przez lata najpopularniejszą metodą było generowanie obrazków (GIF lub PNG) z wzorami i wklejanie ich na strony. Było to rozwiązanie fatalne dla dostępności i skalowalności, ale jako jedyne działało wszędzie.
Dopiero później powstał standard MathML (Mathematical Markup Language), ale nawet on przez dekady borykał się z brakiem pełnego wsparcia w przeglądarkach (szczególnie w Chrome). Obecnie większość stron korzysta z bibliotek JavaScript, takich jak MathJax lub KaTeX, które "tłumaczą" zapis w formacie LaTeX na kod zrozumiały dla współczesnych przeglądarek.
Większość problemów, z którymi mierzyli się twórcy HTML 3.0, została rozwiązana już w latach 70. przez Donalda Knutha w systemie TeX. Knuth stworzył genialne algorytmy składu matematycznego, ale były one tak specyficzne i trudne do przeniesienia do dynamicznego świata HTML, że programiści przeglądarek potrzebowali kolejnych 30 lat, aby zbliżyć się do tej jakości bez spowalniania działania stron.
Podsumowując, znacznik <math> w HTML 3.0 wyprzedził swoje czasy. Brak mocy obliczeniowej, brak standardów typograficznych oraz komercyjna presja "wojen przeglądarek" sprawiły, że ambitna wizja Dave'a Raggetta musiała poczekać na lepsze czasy.