💻 ПРОГРАММИРОВАНИЕ

JavaScript: язык, который написали за 10 дней и не смогли остановить

Спешка, маркетинговая хитрость с именем и десять дней на разработку — а в итоге язык, без которого не работает почти ни один сайт в мире. История о том, как несовершенство покорило интернет.

Язык, на котором держится интерактивность всего интернета, родился в спешке за полторы недели — и его даже назвали обманчиво.
JavaScript написали за десять дней под давлением сроков. Многие его странности — прямое следствие этой спешки, но именно он стал языком всего веба.

Веб 1995 года был неподвижным

В середине девяностых страницы в браузере были статичными: текст, картинки, ссылки. Нажал ссылку — сервер прислал новую страницу целиком. Никаких выпадающих списков, проверки форм на лету, анимаций. Компания Netscape, делавшая самый популярный тогда браузер, поняла: вебу нужен язык прямо внутри страницы, чтобы оживить её без обращения к серверу.

Десять дней Брендана Айка

Задачу поручили инженеру Брендану Айку. Сроки были безумные — на прототип языка ему дали порядка десяти дней. За эту неделю с небольшим он собрал язык, смешав идеи из нескольких источников: простой синтаксис в духе C, функции как полноценные значения из языка Scheme, объекты из языка Self. Получилось работоспособно, но неровно — на вычитку и шлифовку времени не было.

Многие знаменитые «странности» JavaScript растут именно отсюда. Например, язык старался никогда не падать с ошибкой и вместо этого делал хоть что-нибудь — поэтому сложение числа со строкой даёт неожиданные результаты, а проверки на равенство иногда удивляют. Это не глупость авторов, а следствие установки «работать любой ценой» в условиях жёсткого дедлайна.

Хитрость с именем

Изначально язык назывался Mocha, потом LiveScript. Но как раз тогда гремел язык Java, и Netscape договорилась о партнёрстве. Из маркетинговых соображений LiveScript переименовали в JavaScript — чтобы примазаться к чужой популярности. В итоге родилась путаница на десятилетия: JavaScript и Java — разные языки, родственные примерно как ёж и ёршик. Общего у них почти ничего, кроме четырёх первых букв.

ЗаблуждениеКак на самом деле
JavaScript — это JavaРазные языки, общее только имя
Это «несерьёзный» языкНа нём пишут серверы, приложения, игры
Он только в браузереNode.js вынес его на серверы и в любое место

Война браузеров и спасительный стандарт

Дальше началась беда: конкурент Microsoft сделал свою версию языка, и страницы работали по-разному в разных браузерах. Программисты были вынуждены писать одно и то же по нескольку раз и проверять сайт в каждом браузере отдельно — эту эпоху до сих пор вспоминают с содроганием. Чтобы прекратить хаос, язык стандартизировали под именем ECMAScript. С тех пор все браузеры обязались следовать общему стандарту, который регулярно обновляется — отсюда названия вроде ES6, добавившего в язык множество современных удобств вроде стрелочных функций и удобной работы с классами.

Как «язык на коленке» захватил мир

Долго JavaScript считали несерьёзной игрушкой для украшения сайтов. Перелом — появление быстрых движков и платформы Node.js, которая позволила запускать JavaScript вне браузера, на серверах. Внезапно один язык покрыл и фронтенд, и бэкенд. Сегодня это, возможно, самый распространённый язык программирования на планете. Мораль простая и обнадёживающая: продукт не обязан быть идеальным, чтобы изменить мир, — ему достаточно оказаться в нужном месте в нужное время и решать реальную боль.

#JavaScript#браузеры#Брендан Айк#история веба