Frontend Evolution #1: Як 18 HTML-тегів змінили світ: революція веб-фронтенда за 5 років (1990-1995)

💡 Усі статті, обговорення, новини про Front-end — в одному місці. Приєднуйтесь до Front-end спільноти!

🚀 Від академічного експерименту до глобальної платформи

Пам’ятаю, як у 2013 році, працюючи над одним із перших українських стартапів, я натрапив на архівну копію першого сайту в історії — info.cern.ch. Тоді мене вразило, наскільки примітивним виглядав той HTML порівняно з тим, що ми вже вміли робити з jQuery та ранніми версіями фреймворків. Але чим більше я заглиблювався в історію веб-розробки, тим більше розумів: ті самі 18 HTML-тегів, які Tim Berners-Lee створив у 1990 році, заклали фундамент для всього, що ми знаємо сьогодні як frontend-розробку.

Ця стаття відкриває цикл про еволюцію архітектури фронтенда. Ми розглянемо, як за п’ять революційних років (1990-1995) людство перейшло від обміну текстовими файлами до створення інтерактивних веб-додатків. Побачимо, як народжувалися технології, без яких неможливо уявити сучасний веб, і зрозуміємо, чому деякі рішення того часу досі впливають на нашу роботу.

📚 Історичний контекст: коли веб ще не існував

Проблема інформаційного хаосу

У 1989 році в CERN (Європейській лабораторії фізики частинок) працювало понад 17,000 науковців з різних країн. Головною проблемою було не отримання нових даних, а їх систематизація та обмін між дослідниками. Інформація зберігалася в різних форматах, на різних комп’ютерах, з різними операційними системами.

Tim Berners-Lee, англійський програміст, що працював у відділі комп’ютерних сервісів CERN, описував ситуацію так: «Інформація була розкидана по всьому інтернету, але не було способу ефективно її знайти та зв’язати між собою».

Альтернативи того часу

До появи веба існували інші спроби організувати інформацію:

  • Gopher — система меню для доступу до документів (популярна в університетах)
  • FTP — файловий обмін, але без можливості гіперпосилань
  • WAIS (Wide Area Information Server) — пошук по базах даних
  • Usenet — обмін повідомленнями, але не документами

Жодна з цих систем не вирішувала головну проблему: як зв’язати документи між собою незалежно від їх розташування.

Ключові гравці та події

12 березня 1989 — Berners-Lee подає пропозицію «Information Management: A Proposal», де вперше описує концепцію World Wide Web.

1990 — створення перших трьох технологій веба:

  • HTML (HyperText Markup Language)
  • HTTP (HyperText Transfer Protocol)
  • URL (Uniform Resource Locator)

1993 — CERN оголошує, що технології веба будуть безкоштовними для всіх. Це рішення змінило історію.

⚙️ Технічна архітектура: як все починалося

Перші 18 тегів HTML: революційна простота

Оригінальна специфікація HTML містила лише 18 тегів, але кожен мав чітке призначення:

<!-- Структура документа -->
<html>
<head>
<title>Перша веб-сторінка в історії</title>
</head>
<body>

<!-- Заголовки (6 рівнів) -->
<h1>Заголовок першого рівня</h1>
<h2>Заголовок другого рівня</h2>

<!-- Параграфи та текст -->
<p>Це параграф тексту з 
<a href="http://info.cern.ch/hypertext/WWW/TheProject.html">гіперпосиланням</a>
на інший документ.</p>

<!-- Списки -->
<ul>
<li>Елемент ненумерованого списку</li>
<li>Ще один елемент</li>
</ul>

</body>
</html>

Ключова інновація — тег <a> (anchor). Він дозволяв створювати посилання на будь-який документ у мережі:

<a href="http://info.cern.ch/hypertext/WWW/TheProject.html">
Оригінальний опис проекту WWW
</a>

Цей простий тег створив глобальний граф документів, де кожна сторінка могла посилатися на будь-яку іншу. До цього такого не існувало в принципі.

Еволюція браузерів: від WorldWideWeb до Mosaic

WorldWideWeb (1990) — перший браузер, створений самим Berners-Lee на комп’ютері NeXT. Мав революційну особливість: редагування HTML прямо в браузері. Уявіть — перший браузер був водночас і першим WYSIWYG-редактором!

Mosaic (1993) — створений Marc Andreessen та Eric Bina в Університеті Іллінойса. Ключові інновації:

<!-- Революційний тег <img> -->
<img src="logo.gif" alt="Логотип компанії">

<!-- Центрування тексту -->
<center>Текст по центру</center>

Тег <img> змінив все. До Mosaic зображення відкривалися в окремих вікнах. Тепер їх можна було вбудовувати прямо в текст.

JavaScript: народження інтерактивності за 10 днів

Травень 1995 — Brendan Eich з Netscape створює JavaScript за 10 днів. Спочатку мова називалася «Mocha», потім «LiveScript», і нарешті «JavaScript» (з маркетингових міркувань).

Перші можливості JavaScript були обмеженими, але революційними:

// Перевірка форм (революція для 1995 року!)
function validateForm() {
    var name = document.forms["myForm"]["name"].value;
    if (name == "") {
        alert("Ім'я не може бути порожнім");
        return false;
    }
}

// Зміна зображень (ефект rollover)
function changeImage() {
    document.images["myimage"].src = "image2.gif";
}

Архітектурне рішення: JavaScript виконувався в одному потоці з рендерингом HTML. Це означало, що будь-який alert() блокував відображення сторінки — проблема, з якою ми боремося досі.

💼 Практичні кейси: як це було в реальності

Перші комерційні сайти: Pizza Hut і CNN

1994 рік — Pizza Hut запускає перший сайт для замовлення піци онлайн. Технічні виклики:

<!-- Форма замовлення піци - революція 1994 року -->
<form method="POST" action="/order.cgi">
<p>Розмір піци:</p>
<input type="radio" name="size" value="small"> Мала<br>
<input type="radio" name="size" value="large"> Велика<br>

<p>Топінги:</p>
<input type="checkbox" name="pepperoni"> Пепероні<br>
<input type="checkbox" name="mushrooms"> Гриби<br>

<input type="submit" value="Замовити піцу!">
</form>

Проблема: жодної валідації на стороні клієнта. Кожна помилка означала повне перезавантаження сторінки та втрату введених даних.

Особистий досвід: як ми робили сайти на початку 00-х

На початку моєї кар’єри, працюючи в одній з перших веб-студій, ми стикалися з проблемами, які зараз здаються абсурдними:

Проблема браузерної сумісності:

<!-- Перевірка браузера - щоденна реальність 1995-98 -->
<script>
if (navigator.appName == "Netscape") {
    document.write('<img src="netscape_version.gif">');
} else {
    document.write('<img src="ie_version.gif">');
}
</script>

Макети на таблицях — єдиний спосіб контролювати layout:

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
    <td width="20%">Навігація</td>
    <td width="60%">Контент</td>
    <td width="20%">Сайдбар</td>
</tr>
</table>

Уроки та помилки того періоду

  1. Змішування контенту з презентацією — проблема, яку ми вирішуємо досі
  2. Відсутність стандартів призводила до «browser-specific» сайтів
  3. Лінійна структура документів ускладнювала складні інтерфейси

Але найголовніше: ми навчилися мислити компонентами. Кожен <table>, кожен <form> був мініатюрним компонентом з власною логікою.

🌱 Спадок та вплив на сучасну розробку

Що залишилося актуальним

Семантична розмітка — концепція, закладена в оригінальних 18 тегах HTML:

<!-- 1990 рік -->
<h1>Заголовок</h1>
<p>Параграф</p>
<ul><li>Список</li></ul>

<!-- 2025 рік -->
<header><h1>Заголовок</h1></header>
<main><p>Параграф</p></main>
<aside><ul><li>Список</li></ul></aside>

Принцип гіперпосилань еволюціонував у:

  • SPA-роутинг (React Router, Vue Router)
  • Deep linking в мобільних додатках
  • Microservices architecture

Вплив на сучасні фреймворки

Компонентна архітектура React/Vue — це еволюція ідеї «кожен HTML-елемент має призначення»:

// Сучасний React - та сама ідея, але краще
function Article({ title, content }) {
    return (
        <article>
            <h1>{title}</h1>
            <p>{content}</p>
        </article>
    );
}

JavaScript-first підхід виріс з обмежень раннього HTML. Коли розмітки стало недостатньо, логіка перемістилася в скрипти.

Архітектурні паттерни, що народилися тоді

  1. Separation of Concerns — HTML, CSS, JavaScript
  2. Progressive Enhancement — сайт працює без JS, але краще з ним
  3. Graceful Degradation — відступ до простіших версій

🎯 Висновки та перспективи

Період 1990-1995 років заклав фундаментальні принципи фронтенд-розробки:

Семантична розмітка важливіша за візуальне оформлення
Інтерактивність має бути додатковою, не обов’язковою функцією
Стандарти критично важливі для екосистеми
Простота переважає складність у довгостроковій перспективі

Ключовий takeaway: найкращі рішення народжуються з реальних проблем, а не з технологічних можливостей. HTML з’явився не тому, що хтось хотів створити нову мову розмітки, а тому, що фізикам потрібно було ділитися документами.

Але HTML та JavaScript мали свої обмеження, які стали очевидними вже до середини 90-х. Статичні сторінки більше не задовольняли потреби бізнесу, а прості скрипти не могли забезпечити складну інтерактивність. Саме ці обмеження привели до появи нової революційної технології — Dynamic HTML (DHTML) та перших спроб створити справді динамічні веб-додатки.

Про те, як індустрія вирішувала ці виклики через винайдення DHTML, ранніх JavaScript-бібліотек та концепцій прогресивного поліпшення, читайте в наступній статті циклу.

Корисні ресурси:

Питання для обговорення: Які принципи раннього веба ви використовуєте у своїх проектах? Чи відчуваєте ви вплив тих архітектурних рішень на сучасну розробку? Поділіться досвідом у коментарях! 👇

👍ПодобаєтьсяСподобалось8
До обраногоВ обраному3
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

HTML з кожним роком все більше та більше втрачає свою роль. До цього доклали руку Google, а перед цим Microsoft. HTML5 не приніс нічого революційного, це було чергове намагання натягнути сову на глобус. Семантика не покращилася від слова взагалі, тільки додало ще більше плутанини. Коли зʼявилися дійсно складні веб-інтерфейси та SPA, то семантика почала шкульгати на обидві ноги. Стандарт просто не встигає за всіма сучасними змінами та вимогами.

Хоча рішення було просто під носом — XML. Вигадуй собі будь-які теги, поведінку та стиль вже описуй в CSS. Хочеш неймспейси? Не питання. Хочеш трансформації? На вибір або XSLT (цей стандарт просто морально та технічно застарів), або XQuery, який міг легко замінити JS. Валідація? Пфф.. Парсер HTML в рази складніший за XML, бо в останньому дотримувалися хоч якихось правил.

Одного разу я створив UI повністю на кастомних нодах. Теги з HTML сімейства використовувалися лише для загальної структури документа та для форм. Решта була кастомна. Це було неймовірно круто!

Неймовірно «революційний» та «просунутий» Material UI використовує прийоми з давно забутого минулого та XML-подібну декларацію компонентів. Ходіння по колу...

Підписатись на коментарі