Язык программирования JavaScript

Краткая справка

JavaScript был разработан при совместном участии компаний Netscape и Sun Microsystems. Им нужен был упрощенный язык, с которым могли работать веб-дизайнеры и простые программисты. При этом он должен был работать с плагинами, изображениями и Java-апплетами. Руководству компаний не понравился язык PHP, который мог бы подойти для этих целей, поэтому нужен был новый. Создание языка было поручено Брендану Эйху, нанятому в Netscape в апреле 1995 года. Кроме него, в разработке участвовали Марк Андрессен из Netscape и Билл Джой (сооснователь Sun Microsystems).

При этом все понимали, что компания Microsoft стремится завоевать рынок интернета. Вспомните знаменитое изречение Билла Гейтса - “В будущем останутся только два вида компаний: те, кто вышел в интернет и те, кто вышел из бизнеса”. Поэтому Брендану Эйху пришлось завершить создание языка всего лишь за две недели,что было причиной многочисленных недоработок в первых версиях. Сначала разработанный язык назвали Mocha. Потом, видимо, осознав, насколько это ужасное название, его переименовали в LiveScript. А в декабре 1995, получив разрешение у Sun, в JavaScript, реши сыграть на популярности Java. Поэтому, хотя сам язык сейчас никому не принадлежит, но права на название языка принадлежит компании Oracle, купившей Sun Microsystems.

В 1996 году Microsoft выпустил свою версию, назвав её JScript, которая работала только в третьей версии Internet Explorer. Некоторые утверждают, что они полностью скопировали JS вместе со всеми багами и всё работало очень плохо. В любом случае, им пришлось отказаться от использования только одного JScript и обеспечить поддержку стандартного JS (попутно разработав ещё и Visual Basic Script -обе технологии до сих пор поддерживаются майкрософтом).

Позже руководство Netscape приняло решение о стандартизации языка, которое было проведено ассоциацией ECMA. Стандарт языка стал называться ECMAScript, а JScript, JavaScript и ActionScript считаются его расширениями.

Философия языка JavaScript

У JS синтаксис, который имеет много общего с Java и C, однако семантически его можно считать ближе к Smalltalk или Lisp. Так например, и в JavaScript и в Java используется объектно-ориентированный подход, однако в JS он реализован не через классы, а через прототипы. У JavaScript динамическая типизация, а в Java статическая. И, наконец, скрипты на JavaScript выполняются прямо из файла, а не при помощи виртуальной машины.

JS может встраиваться непосредственно в веб-страницу при помощи тегов <script></script> или загружаться из другого файла (в html-документе указывается расположение из этого файла).

Также стоит отметить одно из важнейших понятий для JS - объектную модель документа - программный интерфейс, который позволяет скриптам получить доступ к структуре веб-документов, изменяя их структуру или содержание.

Где применяется JavaScript

Сегодня JavaScript самый популярный язык в вебе. Фактически, только на нем (или на других его реализациях) делают веб-приложения. JavaScript используется в AJAX, для создания виджетов, дополнительных функциях в браузерах (закладках, например), пользовательских скриптов и.т.д. Сейчас практически невозможно найти сайт или сервис, который хотя бы в малой степени не использовал JS.

Благодаря HTML5 удалось вытеснить Flash-технологии из браузеров. Поэтому теперь у JS есть возможность работать с аудио, видео, 3D (WebGL) и рисовать изображения на странице программным способом (Canvas).

После того как Гугл выпустил свой браузер Chrome (на основе Chromium), то встроил в него очень производительный движок для обработки JS, который был назван V8. Этот движок транслировал JS в машинный код.На основе V8 была разработана платформа Node.js, которая позволила универсализировать JavaScript (например, с помощью Node можно подключать библиотеки, написанные на других языках).

JavaScript пытались также использовать для создания десктопных приложений (вне браузера). Однако, это не приобрело большой популярности у разработчиков, кроме, может быть, некоторых энтузиастов. Зато JS используется в браузерных операционных системах - IndraDescktop WebOS, IntOS, eyeOS.

А вот использование JS для разработки мобильных приложений вполне себе процветает. Самым известным фреймворком в этой области стал PhoneGap(Cordova) - он позволяет писать приложения под iOS, Android, используя только JavaScript.

Также JS используется в офисных приложениях - в Microsoft Office, OpenOffice для автоматизации некоторых действий и для создания макросов. Также сценарии JavaScript поддерживаются в приложениях Adobe(Photoshop, Illustrator, Dreamveawer).

Таким образом, можно сказать что JavaScript победил практически во всех областях, где есть Web. А с недавнего времени он начал выходить за пределы всемирной паутины, найдя себе применение в интернете вещей (уже есть множество проектов для умных домов с использование Node.js).

Сложность обучения JavaScript

Чистый JS совершенно не сложен для изучения. Если вы уже знаете какой-нибудь другой язык программирования, то переучиться будет не слишком сложно. Однако, теперь программистам требуется знать значительно большее количество технологий для работы с ним, чем это было в 90-ых или 2000-ых годах. Нужно изучать фреймворки, инструменты для разработки, которые постоянно обновляются и изменяются. И так как это веб, то эти изменения происходят гораздо быстрее, чем для других языков. Фактически, вам придется постоянно гнаться за последними модными тенденциями, чтобы не отставать от остальных программистов.

Плюсы/минусы JavaScript

Плюсы языка общеизвестны - язык настолько широко используется в вебе, что вы никогда останетесь без работы. В любой IT компании без проблем сможете найти себе должность фронтэнд или бэкенд разработчика (в зависимости от Вашей квалификации). Язык постоянно развивается - недостатки, которые были внесены при создании языка, устраняются, появляются новые фишки и технологии, которые облегчают программирование.

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

Сопутствующие технологии

Coffescript - язык программирования, который транслируется в JS. Позволяет писать более упрощенный и компактный код.

Ajax - технология, позволяющая отправлять запросы к серверу и получать ответ без перезагрузки страницы. В большой степени способствовала популяризации JS в своё время.

Typescript - реализация JS, представленная Microsoft в 2012 году. Расширяет возможности JS (в некоторых источниках описывается как “JS с классами”).

Meteor - фреймворк, работающий поверх Node. Позволяет упростить разработку на Node.js.

JQuery - библиотека для JS, которая позволяет легко получить доступ к любому элементу. На нем часто создавали анимации, красивые открывающиеся списки(аккордеоны), слайдеры изображений (карусели) и выдвижные панели.

UnityScript - реализация JS для программирования игр в Unity(3D).