JavaScript используется во все большем количестве мест. Он начинался как язык сценариев для веб-контента и мигрировал во многие области. Этот пост представляет исторические вехи этого процесса. Примечание. Основные этапы — это то, что изменило общественное восприятие того, для чего может использоваться JavaScript. Некоторые из этих этапов были бы невозможны без предварительной работы других. Например: вклад Mozilla в улучшение состояния JavaScript невозможно переоценить. Ниже перечислены основные этапы в хронологическом порядке:
- 1995. Создание JavaScript [1]
В середине 1990-х сеть состояла из статических веб-страниц и форм, которые можно было отправлять для внесения изменений. Стало очевидно, что было бы неплохо иметь более динамичный контент. В то время Java должен был стать основой такого контента. Но Java явно был слишком сложным для веб-дизайнеров, а апплеты Java были громоздкими и слишком далекими от HTML — они работали в виде прямоугольника и плохо интегрировались с окружающим контентом. Следовательно, JavaScript был создан для людей, которые не были опытными программистами и хотели добавить немного интерактивности на свои веб-страницы. Например, формы, содержимое которых можно проверить без отправки на сервер, или кнопки, которые изменяют свой внешний вид, если на них навести курсор. JavaScript также должен был быть связующим звеном, соединяющим более мощные компоненты, запрограммированные в Java. Очевидно, чтоэта последняя идея никогда не получала особой популярности, потому что Java в браузере никогда не становилась популярной.
- 2001. JSON — формат обмена данными на основе JavaScript [2]
В 2001 году Дуглас Крокфорд назвал и задокументировал JSON (нотация объектов JavaScript) — вдохновленная Лиспом идея использовать синтаксис JavaScript для хранения данных в текстовом формате. JSON использует литералы JavaScript для объектов, массивов, строк, чисел и логических значений для представления структурированных данных. Пример:
-
{ "first": "Jane", "last": "Porter", "married": true, "born": 1890, "friends": [ "Tarzan", "Cheeta" ] }
За прошедшие годы JSON стал популярной легкой альтернативой XML, особенно когда нужно представлять структурированные данные, а не разметку. Естественно, JSON легко использовать через JavaScript.
- 2005. Ajax — основанные на браузере приложения настольного класса
-
Ajax — это набор технологий, обеспечивающих интерактивность веб-страниц, которая конкурирует с настольными приложениями. Один впечатляющий пример того, чего можно достичь с помощью Ajax, был представлен в феврале 2005 года: Google Maps. Вы могли перемещаться и масштабировать карту мира, но только контент, который был виден в данный момент, был загружен в браузер. После выхода Google Maps Джесси Джеймс Гарретт заметил, что он разделяет определенные черты с другими интерактивными веб-сайтами. Он назвал эти черты
Ajax , аббревиатурой для
асинхронного JavaScript и XML, Два краеугольных камня Ajax: во-первых, асинхронная загрузка контента в фоновом режиме (XMLHttpRequest, 1999, Internet Explorer 5). Во-вторых, динамическое обновление текущей страницы с результатами, манипулируя
DOM (
объектная модель документа ) браузера (DHTML, 1997, Netscape 4 и Internet Explorer 4). Это было заметным улучшением юзабилити — всегда выполняли полную перезагрузку страницы.
С момента появления Ajax стали популярными другие форматы данных (JSON вместо XML), могут использоваться другие протоколы (например, веб-сокеты в дополнение к HTTP), и возможна двусторонняя связь. Но основные приемы все те же.
- 2005. CouchDB — база данных, ориентированная на JavaScript
Грубо говоря, CouchDB — это база данных JSON: вы передаете ей объекты JSON без необходимости заранее указывать схему. Кроме того, вы можете определять представления и индексы с помощью функций JavaScript, которые выполняют операции отображения / сокращения. Следовательно, CouchDB очень хорошо подходит для JavaScript, потому что вы можете напрямую работать с нативными данными. По сравнению с реляционной базой данных не существует несоответствия импеданса, связанного с отображением. По сравнению с объектной базой данных вы избежите многих сложностей, поскольку хранятся только данные, а поведение отсутствует. CouchDB — это всего лишь одна из нескольких похожих баз данных NoSQL. Большинство из них имеют отличную поддержку JavaScript.
- 2007. WebKit становится основой мобильного Интернета
Основываясь на предшествующей работе KDE, WebKit является HTML двигатель введен Apple , в 2003 году был открытым кодом в 2005 году с введением iPhone в 2007 году, он стал
основой мобильного Интернета. WebKit теперь является основным движком для Android и единственным движком для iOS и доминирует на рынке мобильных устройств. Это означает, что если вы хотите написать кроссплатформенное мобильное приложение, то веб-технология в настоящее время является лучшим выбором (если вам не нужны функции, которые доступны только изначально).
- 2008. V8 — JavaScript может быть быстрым
Когда Google представила свой веб-браузер Chrome, одним из основных моментов стал очень быстрый движок JavaScript под названием V8. Это изменило восприятие JavaScript как медленного и привело к скоростной гонке с другими поставщиками браузеров, от которых мы все еще пользуемся. V8 является открытым исходным кодом и может использоваться в качестве автономного компонента всякий раз, когда нужен быстрый встроенный язык, который широко известен.
- 2009. Node.js — JavaScript на сервере
Node.js позволяет создавать серверы, которые хорошо работают под нагрузкой. Для этого он использует управляемый событиями ввод-вывод и JavaScript (через V8). Стиль программирования на основе событий необычен: весь код сервера выполняется путем отработки заданий из очереди в одном потоке. Вы регистрируете обработчик для запросов. Каждый запрос — это событие, которое добавляет задание в очередь, которая вызывает обработчик. Когда обработчик обрабатывает запрос, он выполняет в основном быстрые вычисления в JavaScript. При желании он может делегировать более трудоемкую работу (например, запросы к базе данных), добавляя вызовы библиотеки в очередь заданий. Последние аргументы таких вызовов — это обратные вызовы для обработки результатов, позже. Таким образом, код сервера не блокируется во время ожидания результатов, и Node.js может немедленно обработать следующее задание в очереди, например, для обработки нового запроса.Большинство заданий библиотеки выполняются в пуле потоков, внешних по отношению к основному потоку. Когда они сделаны, они добавляют вызовы обратного вызова в очередь. Эти вызовы можно рассматривать как возобновление работы исходного обработчика запросов. Одним из преимуществ этого подхода является то, что количество потоков никогда не взорвется, даже при большой нагрузке. И код сервера остается простым, в то же время достигая достаточного количества многопоточности благодаря пулу внешних потоков.И код сервера остается простым, в то же время достигая достаточного количества многопоточности благодаря пулу внешних потоков.И код сервера остается простым, в то же время достигая достаточного количества многопоточности благодаря пулу внешних потоков.
Привлекательность Node.js для программистов на JavaScript выходит за рамки возможности программирования на привычном языке; вы можете использовать один и тот же язык как на клиенте, так и на сервере. Это позволяет вам делать умные вещи, такие как запасной вариант для браузеров, которые не выполняют (достаточно сложную версию) JavaScript: собирать страницы на сервере — с тем же кодом, который вы используете на клиентах с поддержкой JavaScript (примеры: Веб-сервер FunctionSource , Yahoo Коктейли ). Создатель Node.js Райан Даль упоминает следующие причины выбора JavaScript:
- Потому что он прост и не поставляется с API ввода / вывода [поэтому все они новые и неблокирующие].
- Веб-разработчики уже используют его.
- DOM API основан на событиях. Все уже привыкли работать без потоков и в цикле событий. [Веб-разработчики не боятся обратных вызовов.]
Следует отметить, что Даль выбрал JavaScript не потому, что он так любил язык, а по техническим причинам. То, что движок V8 JavaScript был быстрым и легкодоступным, должно быть, также привлекательно. Даль смог основываться на предыдущей работе над серверами, управляемыми событиями, и серверным JavaScript (в форме проекта
CommonJS ).
- 2009. Chrome OS — веб-операционная система [3]
Начиная с Ajax, все больше и больше приложений, которые люди используют, работают в браузере: социальные сети, электронная почта, игры и т. Д. Добавьте к этому тот факт, что в Chrome даже есть собственный диспетчер задач, и вы можете видеть, что браузер уже является встроенной операционной системой. система. Тогда вам нужно задать вопрос: для чего вам нужна встраиваемая операционная система? Это мотивация Chrome OS: запускать только браузер как операционную систему. У этого подхода есть три преимущества: во-первых, он позволяет быстро приступить к работе с новой операционной системой, поскольку все технологии пользовательского интерфейса уже есть (для более низких уровней вам нужно будет грабить что-то еще, например, Android или Linux). Во-вторых, многие разработчики уже знают, как программировать для вашей операционной системы. В-третьих, пользователям системы нечего устанавливать,Новые пользователи могут начать быстро. Это большой плюс для общественных заведений, таких как интернет-кафе и школы.
Внедрение мобильной операционной системы webOS (которая возникла в Palm, а сейчас — в HP) предшествует внедрению Chrome OS, но идея «браузер как ОС» более очевидна с последним (именно поэтому она была выбрана в качестве веха). ). webOS — это и меньше, и больше. Меньше, потому что он очень ориентирован на мобильные телефоны и планшеты. Более того, потому что он имеет встроенный Node.js, чтобы позволить вам реализовывать сервисы в JavaScript. Еще одна, более свежая запись в категории веб-операционных систем — Mozilla Boot to Gecko (B2G). Его первоначальная цель — мобильные телефоны. Сайт B2G также упоминает о преимуществах веб-операционных систем для Интернета: они продвигают современное состояние.
Нам также нужен холм для того, чтобы сфокусировать и сосредоточить наши усилия. Недавно мы увидели, что проект pdf.js [который рендерит PDF-файлы через HTML5 без плагинов] раскрывает небольшие пробелы, которые необходимо заполнить, чтобы «HTML5» был надмножеством PDF. Мы хотим сделать еще больший шаг и найти пробелы, которые не позволяют веб-разработчикам создавать приложения, которые во всех отношениях равны родным приложениям, созданным для iPhone, Android и WP7.
-
2011. Windows 8 — JavaScript как первоклассный пользователь ПК [4]
Когда Microsoft представила Windows 8, она удивила всех обширной интеграцией операционной системы в HTML5. Приложения HTML5 являются первоклассными гражданами в Windows 8, наравне с приложениями, реализованными с помощью существующих технологий, таких как .NET и C ++. Чтобы продемонстрировать это, Microsoft написала несколько важных приложений для Windows 8 на HTML5 (плюс проприетарные расширения), в том числе магазин приложений и приложение электронной почты.
Еще несколько применений для JavaScript: вы можете использовать его для написания сценариев оболочки
[5] , создания собственных мобильных приложений (через
PhoneGap ), программы для Gnome (чья
GnomeShell в основном написана на JavaScript). В дополнение к JavaScript веб-платформа также становится все более мощной:
- Функции для приложений: Canvas для растровой графики (статическая или анимированная), WebGL для 3D-графики и т. Д.
- Функции для документов: SVG для векторной графики, MathML для набора текста по математике и т. Д.
Вывод
Приятно видеть, насколько полезным JavaScript стал за эти годы. Три рекомендации, если вы хотите начать с ним:
- Краткий обзор JavaScript
- JavaScript ссылки на JS Central (поддерживается мной и Белой Варгой)
- Зарегистрируйтесь, чтобы получать уведомления, когда выйдет моя книга о JavaScript (которая будет доступна онлайн бесплатно)
Приветствуются комментарии к этому сообщению в блоге: я пропустил этап? Ты согласен с теми, что я выбрал?
Источник: http://www.2ality.com/2012/01/javascript-pervasiveness.html