Код
#статьи

Брендан Эйх: «Мы сделали JavaScript всего за 10 дней»

Создатель JavaScript рассказывает, как в спешке создавал главный язык веб-разработки, и вспоминает с Лексом Фридманом времена «браузерных войн».

Фото: Patricia de Melo Moreira / Contributor / Getty Images

Лекс Фридман


Об авторе

Учёный-компьютерщик, исследователь ИИ и блогер.



Переводчик

Марина Демидова


Брендан Эйх (Brendan Eich) — создатель языка программирования JavaScript, соучредитель компании Mozilla, создатель браузера Firefox, а теперь соучредитель и генеральный директор компании Brave Software, Inc., создавшей браузер Brave. Ниже мы приводим краткий пересказ его интервью блогеру Лексу Фридману.

Скриншот: Lex Fridman / YouTube

— Как вы полюбили программирование?

— Я немного программировал, когда учился в средней школе. Мы с другом смотрели «Звёздные войны», и он предложил: «А давай напишем программу, которая запускает экваториальную траншею „Звезды смерти“». Это была простая двухмерная графика.

В детстве я увлекался математикой и естественными науками. А ещё мне нравились калькуляторы HP середины 1970-х. Они были крепкими, надёжными, со всеми нужными функциями. Благодаря им я полюбил физику.

Позже, во время учёбы на физическом факультете Университета Санта-Клары, я уже всерьёз увлёкся программированием. Мы использовали Pascal, и я влюбился в его стиль. Структурное программирование 1970-х сегодня считается безнадёжно устаревшим олдскулом, а ведь создатель Pascal Никлаус Вирт был классным писателем и педагогом.

— Расскажите подробнее о Pascal: что это был за язык, как он повлиял на вашу дальнейшую работу?

— Pascal был создан на основе Algol, который, в свою очередь, был очень популярен в 1960-х. Это был своего рода язык процедур и функций. В нём было чёткое разграничение между функциями, которые возвращали значение, и процедурами, которые просто производили вычисления. Потом, когда слава Pascal угасла, он обрёл вторую жизнь — благодаря компании Borland, разработавшей Turbo Pascal. В Borland этим проектом занимался Андерс Хейлсберг, который позже перешёл в Microsoft, где создал C# и TypeScript.

В студенческие годы я также интересовался C в Unix, потому что его использовали на всех видах компьютеров. Я даже самостоятельно собрал компьютер на основе процессора NS16032. В нём ещё использовались длинные инструкции CISC — сокращённые RISC появились лишь в конце 1980-х. Но когда я попытался установить на него Unix, то обнаружилось много багов, которые я не мог исправить.

В итоге после трёх лет серьёзного изучения физики я перешёл в математику и информатику.

— Вас не огорчает, что в теоретической физике не произошло никаких фундаментальных прорывов во второй половине XX века?

— Да, физика 1930-х годов — это потрясающее собрание талантливых учёных: Эйнштейн, Шрёдингер и другие. Мне кажется, после них физика свернула не туда — западная наука предпочла построение теоретических моделей экспериментам и реальности. Причём во всех областях. Да, мы можем построить модели, проверить их экспериментально, а потом на их основе создавать реальные физические устройства, и это хорошо. Но проблема, которую я вижу в той же физике — и в экономике и других точных науках, — в том, что могут создаваться модели, которые не стоит проверять на практике, потому что они могут стать инструментом политического давления или манипуляций.

— Давайте поговорим о JavaScript. Сегодня это один из самых популярных языков в мире. Вы можете рассказать историю его происхождения?

— После окончания аспирантуры я семь лет проработал в Silicon Graphics. А потом мой друг Джефф Вайнштейн перешёл в один из суперстартапов 1990-х годов — Micro Unity Systems Engineering — и переманил туда меня. Компания создавала чип для медиапроцессора с большим количеством цифровых и аналоговых схем. Я участвовал в разработке программного обеспечения для телевизионных приставок.

Через три года я перешёл в Netscape. Это было в августе 1995-го, когда в жизнь людей начал активно входить интернет. Компания занималась разработкой программного обеспечения для глобальной сети.

В то время интернет был преимущественно текстовым. Однако в 1993 году Марк Андриссен и Эрик Бина создали удобный графический браузер Mosaic, в котором изображения можно было просматривать непосредственно на странице, а не переходить по ссылке, как в других браузерах того времени. Более поздние версии Mosaic переименовали в Netscape Navigator.

Netscape Navigator
Изображение: Wikimedia Commons

Андриссен и его команда инженеров задумали создать программируемый браузер, а не просто средство для просмотра документов. Они хотели сделать его динамичным, с анимациями, способным взаимодействовать с пользователями.

А для этого нужен был скриптовый язык, который можно было бы встроить в браузер, чтобы он склеивал на одной странице все компоненты веб-ресурса: изображения, плагины, мультимедиа. Он должен был быть мощным, лаконичным и простым в освоении даже для тех, кто не имел отношения к программированию: дизайнеров, бухгалтеров и просто любителей. Первым его названием было Mocha.

Мне предложили присоединиться к команде, которая занималась разработкой Mocha. Мы решили сделать для Netscape Navigator что-то похожее на Scheme — диалект языка Lisp c упрощённым синтаксисом.

В то же время компания Sun Microsystems разработала язык программирования Oak, который потом стал известен как Java. Netscape выбрала его для своего браузера и заключила с Sun Microsystems соглашение о сотрудничестве. Наши инженеры начали изучать Java и даже попытались встроить в браузер виртуальную Java-машину, но это оказалось не так просто.

Нам нужно было закрыть контракт с Sun Microsystems и создать скриптовый язык — компаньон и побратим Java. Тогда вместе с Марком Андриссеном и Биллом Джоем из Sun Microsystems мы разработали для своего скриптового языка синтаксис, максимально близкий к Java, но с элементами C.

В 1995 году прототип Mocha был готов и интегрирован в браузер, сделка с Sun была закрыта, а Mocha переименовали в JavaScript. Он предназначался для выполнения небольших клиентских задач, в то время как Java был профессиональным языком программирования.

— Расскажите поподробнее, как создавался JavaScript.

— Язык нужно было завершить к выходу нового релиза браузера — Netscape Navigator 2. Мы хотели, чтобы скрипты встраивались в HTML-код, хотя это вызывало возражения у некоторых людей. В итоге JavaScript разрабатывался в большой спешке — фактически мы сделали его всего за 10 дней.

— О чём из сделанного за эти 10 дней вы больше всего жалеете?

— Первая версия языка была довольно неряшливой. К тому же я не подумал о сборщике мусора. Для небольших сценариев, где страница долго не продержится в памяти, это не было критично, а вот когда программист разрабатывал игру или другой проект с распределением памяти на основе событий, это вызывало потерю памяти.

Нам пришлось выпустить множество точечных релизов для исправления этой и других ошибок JavaScript.

— Какую роль сыграл в вашей жизни Марк Андриссен?

— Марк был очень амбициозен и честолюбив. Мы часто встречались с ним в кафе и проводили мозговые штурмы. В 1994 году Netscape Navigator был лидером рынка, но Марк прямо говорил о том, что за нами идёт Microsoft. Он считал Netscape Navigator браузером, который станет новой средой для выполнения программ, как бы заменой операционной системе. И он придавал большое значение JavaScript.

Марк смотрел в далёкое будущее: он говорил, что нельзя ограничиваться одним HTML и изображениями. Нам нужна графика — кинематографическая и даже 3D. В дальнейшем это было реализовано в Mozilla Firefox.

— А что вы скажете о противостоянии Netscape Navigator и Internet Explorer?

— Сегодня Microsoft стала другой. А в конце 1990-х Гейтс вёл агрессивную политику и захватывал рынок. Честно говоря, Internet Explorer мне всегда казался безвкусным, но у Netscape не было шансов противостоять такой большой компании, как Microsoft. Мы чувствовали себя обречёнными. В конце концов Internet Explorer завоевал 90% рынка.

— А как шла эволюция от языка, разработанного за 10 дней, к современному JavaScript?

— Этот путь был весьма извилистым. Мы решили создать идеальный язык, который стал бы популярным во всём мире, и потому Netscape начала готовиться к стандартизации JavaScript. Но Microsoft захватил рынок браузеров, а органов стандартизации в США ещё не было. Тогда мы обратились в европейскую ассоциацию Ecma, которая перед этим уже занималась стандартизацией API Windows 3.1.

В 1997 году мы написали первую редакцию стандарта JavaScript и отвезли его в Ниццу, где он был утверждён под названием ECMAScript (сокращённо — Ec1). В 1998 году мы разработали Ec2, в 1999-м — Ec3. С версией Ec4 возникли сложности, и она не была принята. К тому времени Netscape была куплена компанией AOL, что было неплохим решением, потому что Netscape тогда была буквально раздавлена Microsoft.

Ec5 вышел в 2009 году, Ec6 — в 2015-м. Я называю эту версию Ec6, хотя начиная с неё мы стали использовать нумерацию по годам. Я считаю, что именно с Ec6 JavaScript стал языком, который в итоге захватил мир.

— Что бы вы посоветовали людям, желающим стать программистами? Назовите несколько языков, которые, на ваш взгляд, следует изучить.

— Ну, JavaScript — это язык общего назначения. Он не слишком подходит, например, для машинного обучения. Если вы хотите совершать операции над матрицами или заниматься параллельным программированием, то вам придётся устанавливать дополнительные библиотеки. Для задач из линейной алгебры есть прекрасный язык APL, для машинного обучения активно используется Python. Для низкоуровневого программирования подходит Rust — язык, который был разработан в Mozilla и к которому я тоже имел отношение.

— Вы можете рассказать о войне браузеров в 1990-х?

— Тогда Microsoft злоупотребляла своей монополией на рынке операционных систем для ПК и поплатилась за это. Но у неё была действительно хорошая команда. Если первая и вторая версии Internet Explorer были неудачными, то после выхода третьей мы почувствовали угрозу для Netscape Navigator. А четвёртая версия, которая вышла в 1997 году, действительно была хороша. Там был HTML-тег iframe, позволяющий встраивать одни HTML-документы в другие, было динамическое обновление страниц и неплохой дизайн.

Netscape Communicator 4.x не был так хорош. У него была прекрасная графика, электронная почта и множество плагинов, но также куча ошибок обработки HTML и CSS. Он не мог выиграть конкурентную борьбу с идущим по умолчанию вместе с Windows и полностью бесплатным Internet Explorer. У Microsoft были ресурсы, чтобы нанимать талантливых людей, а разработчики Netscape к тому времени уже выдохлись. Так что Internet Explorer стал лидером рынка.

— Расскажите, как появился Mozilla Firefox.

— Как я уже говорил, в 1998 году компанию Netscape приобрёл AOL, и мы продолжили работу над Netscape Navigator. В пятой версии браузера было много ошибок, и мы решили написать с нуля новый браузер с открытым исходным кодом.

Проект назвали Mozilla — это было внутреннее кодовое имя Netscape Navigator. Над ним работали самые опытные сотрудники Netscape. Мы несколько раз меняли имя браузера: Phoenix, Firebird — и в итоге остановились на Firefox («Красная панда»). В 2002 году вышел Mozilla 1.0, созданный на движке Gecko.

Наша группа работала отдельно от Netscape, а в команду Netscape Navigator набрали новых сотрудников — и в 2000 году они выпустили Netscape Navigator 6.0, основанный на ещё сыром коде Mozilla 1.0, а потом и другие версии.

Для координации разработки браузера Mozilla Firefox была создана отдельная организация Mozilla Corporation. Я входил в её совет директоров, а затем стал главным инженером.

Mozilla Corporation
Фото: Tada Images / Shutterstock

В 2004 году вышел Firefox 1.0, который сразу стал популярным у пользователей и потеснил Internet Explorer. С тех пор новые версии выходят регулярно. В 2011 году Firefox достиг пика популярности, затем его потеснил Google Chrome.

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

— Сегодня перед пользователями интернета встала проблема конфиденциальности информации. Многим не нравится, что браузеры собирают их данные, чтобы передать сторонним ресурсам, которые будут заваливать их рекламой разных товаров и услуг. Даже VPN не всегда помогает.

К тому же такое тотальное отслеживание небезопасно: оно способствует утечке данных, распространению вредоносных программ, запугиванию, психологическому давлению и другим видам нападения на людей.

Поэтому мы решили создать браузер, блокирующий рекламу и средства отслеживания веб-сайтов. В 2015 году мы собрали группу программистов и учредили Brave Software, а в 2016-м уже выпустили первый релиз Brave — полностью бесплатного браузера с открытым исходным кодом.

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована