Html jako dokument tekstowy

0

Mam pytanie. Czemu HTML to plik tekstowy?

1

Moim zdaniem pytanie zbyt ogólne, by odpowiedzieć. Czy chodzi Ci o to, że HTML jest interpretowany jako plik tekstowy zamiast być interpretowanym jako plik "HTML", np. przez biblioteki, programy, systemy operacyjne?

3

Mógłby mieć format binarny, i może zyskałby nawet z 50% na objętości, ale wymagałby wtedy specjalistycznych edytorów, które musiałyby się zmieniać wraz z językiem. Współcześnie chyba większość plików: języków, skryptów, konfigów jest zapisywana otwartym tekstem, bo tak jest wygodniej.

p.s. A swoją drogą, to próbował ktoś z was kiedyś przenosić plik z Amiga Basica na PC? To dobra ilustracja w.w problemu.

1

Wydaje mi się, że HTML to zwykły plik tekstowy z takiego powodu, żeby przeglądarka nie musiała mieć jakiś dodatkowych rozszerzeń wbudowanych typu kiedyś Flash, czy coś. Przeglądarki internetowe funkcjonują w oparciu o język znaczników HTML (HyperText Markup Language). Trzeba pamiętać, że przeglądarki internetowe są po stronie klienta, nie serwera, więc gdyby taka przeglądarka miałaby pracować na komputerze klienta, to ściągając przeglądarkę np. z internetu osoba ta musiałaby także zainstalować wszystkie niezbędne składniki do funkcjonowania tego programu, ponieważ wtedy niemożliwe byłoby przeglądanie sieci, itp..

Wymyślono język znaczników i tyle - tego się trzymają standardowe przeglądarki, po to ten standard ktoś wymyślił. Niektóre przeglądarki wspierają jakieś rozszerzenia jak Flash, "Java plug-in (czy jak to się nazywało)", ale są one opcjonalne do pobrania z internetu i gdy ktoś zechciałby uruchomić aplikację korzystającą z tej techonologii musiałby ściągnąć tę wtyczkę. Po to wymyślono język znaczników, a nie jakieś wbudowane kompilatory w przeglądarkę, czy inne "kombajny", żeby przeglądarka była szybka, stabilna i niezawodna. Przecież została stworzona do przeglądania stron internetowych, a nie do grania w najnowsze produkcje gier typu AAA.

Dla poszerzenia horyzontów sam mógłbyś zaimplementować sobie przeglądarkę, wymyślając do niej interpreter i zestaw instrukcji do wykonania, czy to w formie tag'ów HTML, czy może czegoś jeszcze innego.

Możesz zerknąć na ten project Gynvael Coldwind - Gosu.

3

Mając czysty html i js można zweryfikować co się dzieje... ale to taki argument jak OpenSource Linuxa - może promil tego użyje. Jest to wygodne dla devów jak mogą na żywo z przeglądarki zdebuggować co jest nie tak. Zresztą tak działają języki interpretowane - python, JS i inne to czysta interpretacja jak leci (ofc są JIT ale nie o to chodzi). Ostatecznie najważniejsze funkcje biznesowe raczej nie wychodzą poza serwer więc nie chodzi tutaj o bezpieczeństwo. Format binarny, może by spowodował, małą utratę wagi, ale pamiętajmy, że po sieci nie leci czysty tekst, a najczęściej ten tekst jest dzielony na pakiety, szyfrowany ssl oraz kompresowany,a tekst dobrze się kompresuje. Na poziomie sieci znów leci kompresja, bo wszystkie zera i tak są zbijane. Dodatkowa więc kompilacja/konwersja z kompresją to tylko niepotrzebny poziom skomplikowania. Niemniej problem otwartości gdzieś tam jest dlatego np. kod JS poddaje się obfuskacji i minifikacji. Ja przyglądam się rozwojowi Blazora gdzie funkcje w c# są dostarczane do strony jako skompilowane DLL, ale same widoki html nadal pozostaną raczej w plain tekst.

1 użytkowników online, w tym zalogowanych: 0, gości: 1