int(1)

Брендан Эйх о создании JavaScript за 10 дней

Turing Bootcamp 30.08.2021 0

Сегодня миллионы разработчиков используют язык программирования, который был создан всего за 10 дней в суете бума доткомов. Создатель JavaScript Брендан Эйх пересмотрел корни своего языка в некоторых недавно выпущенных онлайн-видео и объяснил, как все семена, которые он посадил в 1995 году, теперь, наконец, начинают приносить плоды.

1995 год был другой эпохой и другим миром. В то время Netscape считала комбинацию браузер / сервер новым видом распределенной операционной системы, вспомнил журнал Computer . Браузеры могут позволить разработчикам обращаться к пользователям на любой платформе — Windows, Mac или Linux, — но отсутствующим компонентом был язык программирования. Netscape действительно хотел создать язык, дополняющий Java, который понравился бы начинающим программистам, точно так же, как Visual Basic от Microsoft.

Вся техническая индустрия уже пыталась догнать удивительную популярность Интернета. «В то время темп веб-инноваций был бешеным: Microsoft внезапно сделала Интернет центром своей операционной системы Windows 95 в ответ на появление браузеров и серверных продуктов Netscape». Итак, 34-летний Брендан Эйх создал первую версию языка, которая стала JavaScript всего за 10 дней. (В прошлом году Эйх начал выступление на конференции dotJS, сказав: «22 года назад, в мае, я сделал 10 дней тяжелой работы», добавив: « Я мало спал ».)

Краткая история  создания JavaScript 
Эйх был подходящим человеком для этой работы, потому что он уже построил языки программирования, когда был студентом колледжа, «просто для экспериментов с синтаксисом». Эйх вспоминает, что когда дело дошло до лексического анализа и языковых синтаксических анализаторов, «я любил эти вещи, потому что все они были очень красивыми и чистыми, теоретически… Что это дало мне, так это способность быстро вырубить языкового интерпретатора». Еще до прихода в Netscape он также создал языки для встраивания расширений в инструменты сетевого мониторинга в Silicon Graphics. (И, кроме того, Эйх говорит своему интервьюеру: «Я сделал это для развлечения, просто чтобы создать свой собственный язык».)

Фактически, это был основатель Silicon Graphics Джим Кларк, который основал Netscape — так что некоторый интерес к навыкам письма Эйха уже был. «Вначале меня пригласили присоединиться, но я этого не сделал, потому что я придерживался предыдущего стартапа еще на год», — недавно сказал Айх InfoWorld .

Но когда в следующем году Эйх наконец занял эту роковую позицию в Netscape, «меня заманила идея создать очень популярный среди ученых язык под названием Scheme… Идея была« Приходи и делай Scheme в Netscape». Поместите этот язык программирования в браузер ». Позже он называл Scheme« тем прекрасным исследовательским языком, который меня искушал ». Но к тому времени, когда он присоединился к Netscape, они заключили сделку с Sun Microsystems, которая теперь продвигала их новоиспеченный язык Java. «И внезапно история была такой:« Ну, мы не знаем, хотим ли мы Схему. Мы не знаем, нужно ли нам немного языка, как мы хотели, чтобы вы сделали. Может быть, Java хватит ».

Это поворотный момент, который он всегда будет помнить. Еще в 2012 году Эйх сказал журналу Computer, что его давят с двух сторон. «Мы все думали, что Microsoft придет после Netscape, потому что они пытались купить Netscape в конце 94-го… Но мы также придерживались странной теории игр в отношении Java, потому что даже в Netscape некоторые люди думали:« Что ж, если у нас есть Java, действительно ли нам нужен второй язык? » Они не видели преимуществ сопутствующего языка Visual Basic для гораздо большей группы программистов или любителей, дизайнеров или новичков ».

«Но Марк Андриссен из Netscape, Билл Джой из Sun, я и еще несколько человек увидели необходимость в доступном языке, который можно было бы разместить прямо на веб-странице», — сказал он InfoWorld. Или, как он объяснил это компьютеру: «Я писал что-то, что могло быть использовано людьми, которые не знали, что такое компилятор. Они просто собирались его загрузить.

«Я получил маркетинговый приказ сделать его похожим на Java, но не делать его слишком большим для своих размеров. Это просто глупый язык младших братьев, верно? Напарник Явы ».

Что произошло дальше

InfoWorld спросил, как он отреагировал на его ранний успех. «Когда он начал набирать обороты, несмотря на все ошибки и аспекты срочной работы, я был немного удивлен. Но я не был шокирован, потому что после размышлений случилось так, что люди, написавшие веб-страницу, теперь могли программировать веб-страницу ».

«Что сделало JavaScript таким мощным, со всеми особенностями и особенностями работы в спешке, так это то, что он был напрямую связан со всеми функциями браузера, которые среднестатистические веб-разработчики хотели использовать». А в журнале Computer он делится суровой правдой: «как только что-то попадает в открытый доступ, ошибки или недостатки быстро становятся важными особенностями, и их почти невозможно изменить».

«Это была невероятная спешка, поэтому в ней были ошибки. Я считаю важным то, что я знал, что будут ошибки и будут пробелы, поэтому я сделал его очень гибким как язык ».

Или, как он сказал собравшимся в dotJS, «это действительно сложно заменить. В JavaScript есть что-то вроде успешной ДНК. Как только он окажется там, вам будет трудно от него избавиться ».

Он цитирует «открытие» asm.js внутри JavaScript, называя это «еще одной вещью, которой я особенно горжусь за последние 10 лет». Он использует поразрядные операторы, которые были включены в исходный JavaScript, которые теперь являются основой для статически типизированного языка с машинными типами для обеспечения высокой скорости работы. «Если бы этого не было с 1995 года, было бы сложно добавить позже. И тот факт, что он был там все время, означал, что мы могли делать невероятно быстрый JavaScript ».

Он сказал InfoWorld, что это «очень мощное семя, которое было в оригинальном JavaScript с 10-го числа мая 1995 года». 32-разрядные математические операторы JavaScript (известные как побитовые операторы) ведут свое происхождение от языка программирования C и до Java. В конечном итоге это привело к WebAssembly — способу преобразования инструкций в быстро исполняемый двоичный формат для виртуальных машин — и осознанию того, что с движком JavaScript «у вас может быть два языка — старый язык, который я использовал с фигурными скобками и функциями. и операторы сдвига, и этот новый язык, который является двоичным языком, не предназначенным для чтения людьми или письма. Но он может быть сгенерирован компиляторами и инструментами, и может быть прочитан инструментами … »

Что он сделал бы по-другому

Что бы он сделал по-другому после 23 лет размышлений? Люди говорят ему, что ему следовало отказаться от работы в таком коротком графике — или что ему следовало внедрить в Netscape другой язык, например Perl, Python или Scheme, — но он бы это не изменил. Ему просто жаль, что он не был более избирательным в том, какие отзывы он выслушивал от первых штатных тестеров JavaScript.

«Одним из самых известных утверждений было:« Я хотел бы сравнить число со строкой, содержащей это число ». И я не хочу менять свой код для преобразования строки в число или числа в строку. Я просто хочу, чтобы это работало. Не могли бы вы заставить оператор равенства просто сказать: «О, это похоже на двойку, а это похоже на строку номер два». Они достаточно равны ».

«И я сделал это. И это большое сожаление, потому что это нарушает важное математическое свойство, свойство отношения эквивалентности … Это привело к добавлению второго типа оператора равенства, когда мы стандартизировали JavaScript ». Одним из тех, кто помог стандартизировать JavaScript, был Гай Стил , один из соавторов Scheme. «Гай сказал:« Не беспокойся об этом. Есть лиспы, в которых есть пять типов операторов равенства. Мы просто добавим еще одну ».

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

Эйх также является соучредителем сообщества Mozilla (а также Mozilla Foundation, которая разрабатывает проекты с открытым исходным кодом, такие как веб-браузер Firefox). В 2015 году он стал генеральным директором Brave Software , которая создала веб-браузер с блокировкой рекламы под названием Brave, который теперь имеет более 2,2 миллиона активных пользователей каждый месяц . Все это проистекает из его интереса к конфиденциальности, хотя Эйх шутит в конце интервью, что, если вы проследите все до его истоков, JavaScript станет одной из фундаментальных частей, которые рекламодатели используют для веб-отслеживания.

«Так что я наверстываю это», — говорит он со смехом.

Поделиться
Интересные статьи:
Turing Bootcamp 08.08.2021 Node.js: что это такое и для чего он нужен? Часть 1. Вступление Растущая популярность JavaScript принесла с собой множество изменений, и сегодня лицо веб-разработки кардинально изменилось. То, что мы можем делать...
Turing Bootcamp 09.09.2021 9 советов Стива Клабника для начинающих программистов Эта статья основана на Codementor Hour of Code Office Hour, организованном Стивом Клабником , который известен как активный участник...
Turing Bootcamp 08.08.2021 Начать с нуля: истории трех начинающих программистов, которые добились успеха Программирование - один из самых востребованных навыков в 4-й промышленной революции, поскольку для удовлетворения спроса необходимо разрабатывать больше технологий. Это...