int(1)

Что такое JavaScript и откуда он взялся?

Turing Bootcamp 18.06.2021 0

JavaScript — самый популярный язык в сети, но так было не всегда.

JavaScript де-факто является языком Интернета. Его происхождение часто сводится к тому, что «Брендан Эйх создал JavaScript для Netscape за десять дней!» Хоть это правда, эта история заслуживает более внимательного изучения.


 

КОНТЕКСТЫ: БРАУЗЕРЫ СТАНОВЯТСЯ УМНЕЕ

В 1993 году разработчик Марк Андриссен помог Национальному центру приложений в Университете Иллинойса запустить Mosaic: удобный графический веб-браузер . Интернет эволюционировал из области текстов для любителей в мультимедийную вселенную для обычных пользователей компьютеров.
Впоследствии Андреессен основал частную Mosaic Communications Corporation и в 1994 году выпустил коммерческий браузер под названием Mosaic Navigator (после урегулирования иска название было изменено на Netscape). Netscape Navigator стал хитом.
Ответ Microsoft и Internet Explorer зловеще маячил на горизонте. Андриссен знал, что Navigator придется продвигать новые функции, чтобы сохранить доминирующее положение на рынке. Веб-браузеры должны были выйти за рамки отображения статических документов и запустить по-настоящему интерактивное программное обеспечение.

JAVA ПРОТИВ JAVASCRIPT (ЧАСТЬ I)

В 1995 году Netscape заключила сделку с другим конкурентом Microsoft, Sun Microsystems, которая дебютировала с основным языком программирования, Java . Java заимствует синтаксис из C / C ++, но скомпилированный байт-код Java является переносимым — он может работать в различных операционных системах. Пользователь с установленным навигатором и виртуальной машиной Java может выполнять программы Java как автономные «applets,”, содержащиеся внутри веб-страницы.
Изолированный характер Java означал, что все еще существовала потребность в языке, который улучшил бы веб-страницы — анимации раскрывающихся меню, проверки записей форм и т. д. Поскольку Sun позиционировала Java как профессиональный выбор для сложных встроенных программ, этот сопутствующий язык был задуман как небольшое доступное решение для дизайнеров и авторов страниц. Что особенно важно, это могло быть написано непосредственно внутри HTML-документов и интерпретировалось бы самим браузером Navigator.
Именно в этот момент в начале 1995 года Netscape заключила знаменитый контракт с Бренданом Эйхом на разработку такого языка в кратчайшие сроки. Требования, предъявляемые к Эйху и его решения по их выполнению в конечном итоге окажут монументальное влияние на природу сети.

КАК СОЗДАВАЛСЯ JAVASCRIPT

Разработка языка — это вызов, но также и возможность. Языки программирования могут выражать старые идеи по-новому и популяризировать альтернативные подходы.

Влияния

Эйх прочитал « Структура и интерпретация компьютерных программ» , знаковый учебник Массачусетского технологического института, в котором представлена ​​языковая схема, сочетающая в себе минималистский набор функций с удивительной мощностью и гибкостью. В Scheme процедуры могут работать и генерировать «обычные» данные (числа, текст и т. Д.), А также работать и генерировать другие процедуры, что является определяющей характеристикой функционального программирования .
Netscape наняла Эйха для реализации «Схемы для браузера», а затем поставила ему противоречивое условие: все, что он придумал, должно «выглядеть как Java». В конечном итоге Эйх создал быстрое доказательство концепции, используя синтаксис на основе Java для выражения возможностей на основе схемы. Затем он включил в эту и без того маловероятную комбинацию уникальный стиль объектно-ориентированного программирования (ООП).

Уникальный язык

В ООП данные и процедуры инкапсулируются вместе в «объекты», которые обычно определяются через иерархию абстрактных классов. Java — один из наиболее объектно-ориентированных языков, с которым неразрывно связана концепция классов. Но ООП в Java имеет всеобъемлющий и жесткий вкус, которого Эйх избегал. Вместо этого он выбрал уникальный стиль ООП — динамическую прототипную систему наследования , вдохновленную языком Self . Объекты могут быть созданы по желанию и связаны с другими объектами (называемыми прототипами). Это прототипное наследование добавляет сравнительно мало синтаксиса к языку, но при этом способно моделировать классические или альтернативные шаблоны наследования.

Этот новый язык объединил:
— Поверхности и управляющие структуры из Java;
— Базовое функциональное и объектно-ориентированное поведение из Scheme и Self;
— Функции, которые были минималистичными, но гибкими.

Эйх создал инструмент, который удовлетворял требованиям («выглядит как Java», «маленький», «доступный»), но имел больший потенциал, чем, возможно, кто-либо ожидал. Внутри он был известен как Mocha, переименован в LiveScript и, наконец, — хотя он мало похож на Java — получил название JavaScript.

Почему JavaScript так популярен?

Поначалу JavaScript был далеко не любимым. Разработчики Java рассматривали его как меньшую сущность для не-инженеров — «клей пользовательского интерфейса» с редкими инструментами и «странной» системой наследования — а дизайнеры и авторы все еще изо всех сил пытались манипулировать элементами страницы, такими как поля формы.
Несмотря на эти проблемы, JavaScript быстро стал популярным, и разработка новых инструментов и функций веб-страниц опередила выпуск реальных Java-апплетов. В 1996 году Microsoft была вынуждена перепроектировать поддержку JavaScript в Internet Explorer как «JScript», но попытка оказалась несовершенной, что привело к различным несовместимости между JavaScript и JScript.

Новое имя: ECMAScript

В Netscape поняли, что для успеха интерактивного, динамического Интернета, JavaScript должен быть согласован во всех браузерах, поэтому они попросили организацию по стандартизации Ecma International кодифицировать этот язык. В 1997 году организация разработала платформо-независимые спецификации для «ECMAScript» (ES), языка, широко известного как JavaScript.
В последующее десятилетие ECMAScript претерпел множество изменений и дополнений. ES2 (1998 г.) и ES3 (1999 г.) принесли ряд важных функций (таких как «исключения», стандартный способ обработки ошибок в коде), продолжая переход JavaScript от простого «клея сценариев» к полноценному языку для приложений.

JAVA ПРОТИВ JAVASCRIPT (ЧАСТЬ II)

А пользователям Java тем временем :
— Не нравилось поддерживать виртуальную машину Java в актуальном состоянии.
— Их напугала подсказка безопасности Java.
— Они возмущались необходимостью загружать большие Java-программы при посещении определенных страниц.

Короче говоря, JavaScript был легко интегрирован с Интернетом, тогда как Java был громоздким и часто отрывался от содержимого страницы. Неожиданно, вместо того, чтобы поддерживать гигантскую Java-версию Sun, ее вытеснил маленький мэшап Эйха.

ЭВОЛЮЦИЯ JAVASCRIPT

Однако в JS все еще отсутствовали определенные функции, которые обычно можно было бы ожидать от «большого» языка, поэтому ECMAScript 4 попытался исправить это с помощью множества дополнений: классов и интерфейсов в стиле Java, статических типов с аннотациями, улучшенной области видимости и типов переменных и т. Д. Разработчики из Microsoft, Opera, Yahoo !, и Macromedia обсуждали, в каком направлении следует двигаться JS, в то время как дополнительные языки, такие как ActionScript for Flash от Macromedia, добавляли неопределенности. ES4 погрузился в ад разработки и в конечном итоге был заброшен.
Несмотря на препятствия на пути, JS был слишком укоренившимся и полезным, чтобы идти путем все более и более нерелевантных апплетов Java и Flash. В 2005 году Джесси Джеймс Гарретт способствовал возрождению, популяризируя AJAX, набор методов, которые позволяют веб-сайтам на базе JavaScript больше походить на быстрые нативные приложения. Сцена JS взорвалась новыми мощными библиотеками, такими как jQuery и MooTools, которые абстрагировались от несоответствий браузера и упростили применение шаблонов проектирования. JS становился не только де-факто языком Интернета, но и теперь использовался для создания продуктов в стиле настольных компьютеров, таких как Gmail и Google Maps.
ES5 (более скромное обновление, чем злополучный ES4, первоначально называвшееся ES3.1) было выпущено в 2009 году, и сообщество Ecma снова составило список желаний для новых функций JS для ES6. Это привело к еще одному затяжному процессу достижения консенсуса, растянувшемуся на бесконечные шесть лет, и практически удвоило размер ECMAScript.

Постоянный поток

К 2015 году JS стал неотъемлемой частью Интернета, сердцем передовых браузерных приложений. Команды разработчиков выходили за границы возможного с помощью множества фреймворков и методов, чтобы заполнить пробелы в возможностях JavaScript, и комитет, отвечающий за процесс стандартизации Ecma, признал, что сообщество движется быстрее, чем может удовлетворить шестилетний цикл выпуска. Нужна была новая система.
Новая система позволяет параллельно предлагать, исследовать и ратифицировать функции. Каждый год Ecma выпускает те функции, которые считаются готовыми. ES6 был официально опубликован как ES2015, и с тех пор в ES2016 и ES2017 вносились только постепенные изменения при постоянной поддержке со стороны поставщиков браузеров.

КТО ИСПОЛЬЗУЕТ JAVASCRIPT

Некоторые могут сказать о JavaScript, что «лучше быть удачливым, чем хорошим». Начавшись в нужном месте в нужное время, он превратился в один из наиболее часто используемых языков в отрасли. Фактически, отчет GitHub «Octoverse» за 2017 год ставит его на первое место по популярности, с ошеломляющими 2,3 миллиона репозиториев GitHub (в 2,3 раза больше, чем у Python, занявшего второе место), в то время как реестр пакетов NPM, основной источник загружаемых Код JS затмевает реестры для других языков.

ПРЕИМУЩЕСТВА JAVASCRIPT

Однако этот экспоненциальный рост — это не только функция интеграции в Интернет. С момента своего создания JavaScript обошел Java, Flash и других конкурентов, потому что:
— Это можно быстро выучить;
— Это позволяет разработчикам быстро создавать что-либо;
— Быстро бегает;
— У него есть множество действительно «хороших частей».
— Код JS теперь можно найти в телефонных приложениях, роботах, космических агентствах и т.д.

НЕДОСТАТКИ JAVASCRIPT

У JS также есть несколько хорошо известных недостатков:

— Бесконечное ожидание подходящей модульной системы;
— Правильное кодирование JS, как и большинство языков, требует дисциплины и обучения;
— Отсутствие контроля над памятью, потоками и т.п.
Но сообщество настроилось решить эти проблемы с помощью живой экосистемы кода, документации и образовательных ресурсов. Но перспективы у JavaScript на ближайшие несколько лет радужные.

Поделиться
Интересные статьи:
Turing Bootcamp 24.03.2021 🎬 7 интересных фактов о фильме «Социальная сеть» 1.Начальная сцена с участием Джесси Айзенберга и Руни Мара заняла 8 страниц сценария, для того, чтобы ее снять потребовалось...
Turing Bootcamp 21.04.2021 «Повышении зарплаты на 25000$». Программисты о плюсах буткемпов Обучение программированию в формате буткемп уже давно превратилось в индустрию, которая только за 2018 год заработала 240 млн. долларов,...
Turing Bootcamp 23.03.2021 🗣 Как пройти собеседование в ИТ-компанию? Советы для джунов Собеседование с работодателем по праву можно считать самым трудным и ответственным этапом в процессе поиска работы. Мы подготовили для...