Это 25-я годовщина JavaScript, но, как и сам JavaScript, вокруг него не так много шума. Во многом это история JavaScript. Это Фундаментальный язык Интернета, и тем не менее, его редко признают в качестве ведущего в любом производстве.
JavaScript заслуживает гораздо большего уважения, чем он получает. Несмотря на то, что он является лучшим языком на GitHub, он никогда не поднимался выше шестой позиции в индексе TIOBE и в настоящее время занимает 7-е место ниже Visual Basic!
Однако, глядя на оригинальный пресс-релиз JavaScript, выпущенный Netscape и Sun 4 декабря 1995 года, вы приходите к выводу, что скромность — это часть его наследия и что, войдя в мир, цепляясь за фалды Java, на самом деле он никогда не устанавливал идентичности.
Самая большая проблема JavaScript — это его название. За год он превратился в нечто большее, чем просто «язык сценариев», описание которого заставляет многих отвергать его как тривиальный, и какое отношение он имеет к Java?
Ответ на этот вопрос раскрывается в том первом объявлении, в котором не только JavaScript представлен как «дополнение к Java», но и Java, которая упоминается не менее 30 раз, часто оказывается в центре внимания с такими комментариями, как:
Программисты были в восторге от Java, потому что она была разработана с нуля для Интернета.
а также:
Java предоставляется разработчикам бесплатно.
Причина, конечно же, заключалась в том, что Java, последний вундеркинд на рынке, выпущенный в мае 1995 года, нуждался во всех возможностях, а JavaScript, как и Java, был собственностью Sun Microsystems. Сегодня JavaScript является товарным знаком Oracle в рамках приобретения Sun в 2010 году.
Итак, у JavaScript было скромное начало, и он начался как часть бета-версии Netscape Navigator 2.0, веб-браузера, который, будучи открытым исходным кодом, продолжает жить в Mozilla Firefox.
В оригинальном пресс-релизе чего-то не хватает, так это упоминания о том, кто его разработал. Благодарность за JavaScript принадлежит Брендану Эйху, который в Netscape был нанят Netscape в апреле 1995 года. Эйх намеревался использовать Scheme, производную от Lisp, в качестве языка, который будет включен в браузер NetScape. Однако у его боссов были другие идеи и они настаивали на синтаксисе, подобном Java, поэтому Эйх придумал язык, который он назвал Mocha, который сочетал в себе большую часть функциональности Scheme, объектную ориентацию Self, язык Smalltalk и синтаксис Java. Первая версия была завершена всего за 10 дней, чтобы уложиться в график выпуска Navigator 2.0. В сентябре 1995 года язык был переименован в LiveScript, а в декабре стал JavaScript, чтобы заработать репутацию Java — о чем, вероятно, язык пожалел.
На самом деле у JavaScript действительно есть другое имя — ECMAScript — и именно это имя используется для новых выпусков — самым последним из них является ECMAScript 2020, а следующим — ECMAScript 2021. Однако мы по-прежнему склонны ссылаться на JavaScript или просто JS.
Другая проблема заключается в том, что JavaScript повлиял на многие другие языки, которые настолько похожи на него, что попали в нашу категорию «JavaScript». На данный момент наиболее популярным является TypeScript, разработанный и поддерживаемый в Microsoft при участии Андерса Хейлсберга, ведущего архитектора C # и создателя Delphi и Turbo Pascal. TypeScript, который отличается от своего прародителя включением информации о типе, компилируется в JavaScript. То же самое и со многими другими языками, включая Scratch и другие блочные языки, предназначенные для начинающих, особенно для детей.
В целом экосистема JavaScript огромна, она является сердцем, душой и мускулом Интернета, а node.JS — основным движком.
Итак, что делает JavaScript особенным. Это все, что я сделал в JavaScript Inherits the Earth, и еще несколько.
JavaScript — это язык высокого уровня следующего поколения, который ставит программиста выше оборудования.
Это один из немногих языков, на который повлиял C, но не рабская копия. Знакомство с правильным JavaScript может расширить ваш кругозор в программировании.
Его подход к объектам очень подходит для интерпретируемого языка.
Наличие функций в качестве объектов, что делает их функциями первого класса по умолчанию, является отличным способом поддержки менее экстремального функционального программирования, то есть функционального программирования без моноидов.
Современный JavaScript имеет множество средств метапрограммирования.
Его подход к асинхронному коду, использующий обещания, async и await, возможно, лучший.
Чтобы узнать больше о причинах уникальности JavaScript, в лучшую сторону и, возможно, в некоторых случаях, в худшую сторону, см. «JavaScript Jems: The Amazing Parts (I / O Press)», автор — редактор I Programmer, Майк Джеймс.
Ян Эллиот — автор нескольких книг о JavaScript. Просто JavaScript: идиоматический подход, предназначенный для программистов, знакомых с другим языком, радикально рассматривает JavaScript с учетом того, как он основан на объектах. JavaScript Async охватывает асинхронное программирование на JavaScript, async / await, Promises, Service Workers и так далее. В его последней книге «Растровая графика JavaScript с холстом» показано, как использовать холст для создания графики, не прибегая к каким-либо библиотекам.