Javascript история создания кратко

Обновлено: 30.06.2024

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

Содержание

История

11111111111111111111111111111111111111111111111111111111111111111111111.jpg

Структура языка

Структурно JavaScript можно представить в виде объединения трёх чётко различимых друг от друга частей

  • ядро (ECMAScript),
  • объектная модель браузера (Browser Object Model или BOM (en)),
  • объектная модель документа (Document Object Model или DOM).

Основная статья: ECMAScript ECMAScript не является браузерным языком и в нём не определяются методы ввода и вывода информации. Это, скорее, основа для построения скриптовых языков. Спецификация ECMAScript описывает типы данных, инструкции, ключевые и зарезервированные слова, операторы, объекты, регулярные выражения, не ограничивая авторов производных языков в расширении их новыми составляющими. [Источник 1]

Объектная модель браузера

Объектная модель браузера — браузер-специфичная часть языка, являющаяся прослойкой между ядром и объектной моделью документа. Основное предназначение объектной модели браузера — управление окнами браузера и обеспечение их взаимодействия. Каждое из окон браузера представляется объектом window, центральным объектом DOM. Объектная модель браузера на данный момент не стандартизирована, однако спецификация находится в разработке WHATWG и W3C.

Помимо управления окнами, в рамках объектной модели браузера, браузерами обычно обеспечивается поддержка следующих сущностей:

Объектная модель документа

Основная статья: Document Object Model Объектная модель документа — интерфейс программирования приложений для HTML и XML-документов. Согласно DOM, документ (например, веб-страница) может быть представлен в виде дерева объектов, обладающих рядом свойств, которые позволяют производить с ним различные манипуляции:

  • генерация и добавление узлов,
  • получение узлов,
  • изменение узлов,
  • изменение связей между узлами,
  • удаление узлов. [Источник 2]

Области использования

Первоначально JavaScript обладал довольно небольшими возможностями. Его цель состояла лишь в том, чтобы добавить немного поведения на веб-страницу. Например, обработать нажатие кнопок на веб-странице, произвести какие-нибудь другие действия, связанные прежде всего с элементами управления.

Однако развитие веб-среды, появление HTML5 и технологии Node.js открыло перед JavaScript гораздо большие горизонты. Сейчас JavaScript продолжает использоваться для создания веб-сайтов, только теперь он предоставляет гораздо больше возможностей.

Наиболее популярные области использования JavaScript:

Практическое использование. Встраивание в веб-страницу

Основной скрипт. Расположение внутри страницы

Современные браузеры в обязательном порядке имеют поддержку языка JavaScript.

Команды JavaScript добавляются на веб-страницы с помощью тега

Скрипт этого языка можно как внедрять непосредственно в HTML-код страницы, так и выносить в файл, который может вызываться разными страницами. Вот пример вызова файла со скриптом:

Для более подробного изучения команд можно воспользоваться библиотекой

Расположение внутри тега

Спецификация HTML описывает набор атрибутов, используемых для задания обработчиков событий. Пример использования:

Использование кода JavaScript в контексте разметки страницы расценивается в рамках ненавязчивого JavaScript как плохая практика. Аналогом (при условии снабжения ссылки идентификатором alertLink)

приведённого примера может являться, например, следующий фрагмент JavaScript:

Вынесение в отдельный файл

Есть и третья возможность подключения JavaScript — написать скрипт в отдельном файле, а потом подключить его с помощью конструкции

Атрибуты элемента script

Элемент script, широко используемый для подключения к странице JavaScript, имеет несколько атрибутов. необязательный атрибут type для указания MIME-типа содержимого. В запросе комментариев RFC-4329, определяющем[55] MIME-тип, соответствующий JavaScript, указано:

которые также определяются в этом документе, предназначены для практического использования, им следует отдавать предпочтение.

Необязательный атрибут src, принимающий в качестве значения адрес к файлу со скриптом. Необязательный атрибут charset, используемый вместе с src для указания используемой кодировки внешнего файла. Необязательный атрибут defer указывает, что получение скрипта происходит асинхронно, но выполнение следует отложить до тех пор, пока страница не будет загружена целиком. Необязательный атрибут async указывает, что получение скрипта происходит асинхронно, а выполнение будет произведено сразу по завершению скачивания. Очерёдность выполнения скриптов не гарантируется. При этом атрибут language (language="JavaScript"), несмотря на его активное использование (в 2008 году этот атрибут был наиболее часто используемым у тега

Отдел фронтенд-разработки компании Лайв Тайпинг перевёл для читателей Хабра большой материал о зарождении, развитии и перспективах языка JavaScript, вышедший в блоге сервиса Auth0. Сегодня мы публикуем первую часть перевода. Соперничество Netscape и Mosaic, грёзы об интерактивном вебе, язык программирования для не-программистов, переход от классов к прототипам и что общего между JavaScript и ECMAScript (спойлер: всё).




JavaScript, вероятно, является одним из самых важных языков программирования на сегодняшний день. Благодаря развитию веба JavaScript достиг высот, которых ему не сулили. В этой статье мы рассмотрим весь путь JavaScript от создания до сегодняшних дней и постараемся заглянуть в его будущее.

Все началось в 90-е

События, в результате которых появился JavaScript, разворачивались в течение шести месяцев, с мая по декабрь 1995 года. Компания Netscape Communications уверенно прокладывала себе путь в области веб-технологий. Её браузер Netscape Communicator успешно отвоевывал позиции у NCSA Mosaic, первого популярного веб-браузера. Netscape была создана людьми, принимавшими участие в разработке Mosaic в ранние 90-е. Теперь, с деньгами и независимостью, у них было всё необходимое для поиска способов дальнейшего развития веб-технологий. Именно это послужило толчком для рождения JavaScript.



Перед командой была поставлена задача подготовить работающий прототип в кратчайшие сроки. Sun Microsystems заканчивала работу над своим языком программирования Java, на тот момент называвшимся Oak, и Netscape Communications была уже готова заключить с компанией контракт, чтобы сделать Java доступным в своем браузере. Так зачем же понадобился Mocha (первое название JavaScript)? Зачем нужно было создавать абсолютно новый язык программирования при наличии готовой альтернативы? Дело в том, что Java не был предназначен для той аудитории, на которую ориентировался Mocha — скриптеры, любители, дизайнеры. Java был слишком большим и навороченным для того, чтобы выполнять эту роль. Основная идея заключалась в том, что Java должен был предназначаться для крупных разработчиков и профессиональных программистов, в то время, как Mocha должен был использоваться для небольших скриптовых задач. Другими словами, Mocha должен был стать скриптовым компаньоном для Java по принципу, аналогичному тому, как взаимодействуют C/C++ и Visual Basic на платформе Windows.

Инженеры Netscape приступили к детальному изучению Java. Они даже начали разрабатывать собственную виртуальную машину Java, однако проект быстро свернули, так как она не могла достичь идеальной совместимости с виртуальной машиной Sun Microsystems.

Проблема скорейшего выбора языка стояла как никогда остро. Возможными кандидатами были Python, Tcl и Scheme. Айк должен был действовать быстро. По сравнению с конкурентами у него были два преимущества: свобода в определении набора необходимых возможностей и прямая связь с заказчиком. К несчастью, имело место и очевидное неудобство: для принятия огромного количества важных решений времени практически не было. JavaScript, a.k.a. Mocha, был рождён именно в таких условиях. В течение нескольких недель был подготовлен рабочий прототип, который затем был интегрирован в Netscape Communicator.

То, что должно было стать аналогом Scheme для браузера, вылилось в нечто совершенно иное. Рукой Айка управляли необходимость закрыть сделку с Sun и сделать Mocha скриптовым компаньоном для Java. Синтаксис должен был быть максимально близким Java. Помимо этого, от Java была унаследована семантика для большого количества устоявшихся идиом. Таким образом, Mocha был совсем не похож на Scheme. Он выглядел, как динамический Java, под оболочкой которого скрывался гибрид Scheme и Self.

Прототип Mocha был интегрирован в Netscape Communicator в мае 1995 года. Через очень короткий промежуток времени он был переименован в LiveScript, так как в тот момент слово live выглядело очень привлекательным с точки зрения маркетологов. В декабре 1995 года сделка между Netscape Communications и Sun была закрыта: Mocha/LiveScript был переименован в JavaScript и преподносился в качестве скриптового языка для выполнения небольших клиентских задач в браузере, в то время, как Java был полноценным профессиональным языком программирования для разработки сложных веб-компонентов.

Первая версия JavaScript заложила все те фундаментальные особенности, которыми этот язык знаменит и поныне. В частности, его объектная модель и функциональные особенности уже присутствовали в первой версии.

Трудно сказать, как развивались бы события, если бы Айк не успел предоставить рабочий прототип вовремя. Python, Tcl, Scheme, рассматривавшиеся в качестве альтернативы, были совершенно не похожи на Java. Sun было бы трудно принять в качестве языка-компаньона для Java варианты, в корне отличавшиеся от него. С другой стороны, Java долгое время был важной частью веба. Если бы Sun не являлись определяющим фактором, у Netscape было бы намного больше свободы в выборе языка. Но стала бы Netscape разрабатывать собственный язык или воспользовалась одним из существующих? Этого мы никогда не узнаем.

Различные реализации

Когда Sun и Netscape закрыли сделку, и Mocha/LiveScript был переименован в JavaScript, встал ребром очень важный вопрос: что будет с конкурентами? Хоть Netscape и набирал популярность, становясь самым используемым браузером, Microsoft занималась активной разработкой Internet Explorer. С самых первых дней JavaScript показал настолько удивительные возможности в плане взаимодействия с пользователем, что соперничающим браузерам не оставалось ничего иного, кроме как в кратчайшие сроки найти готовые решения, представлявшие собой рабочие реализации JavaScript. В тот момент (и ещё достаточно долго после этого) веб-стандарты оставались достаточно слабыми. Поэтому Microsoft разработала свою реализацию JavaScript, назвав ее JScript. Убрав из названия слово Java, они смогли избежать возможных проблем с владельцами торговой марки. Однако, JScript отличался не только названием. Небольшие различия в реализации — в частности, подход к некоторым DOM функциям — оставили рябь, которая будет ощущаться ещё долгие годы. Бои за JavaScript шли на гораздо большем количестве фронтов, чем названия и таймлайны, и многие причуды этого языка появились благодаря им. Первая версия JScript появилась в Internet Explorer 3.0, увидевшем свет в августе 1996 года.

Реализация JavaScript получила свое собственное название и в Netscape. Версия, выпущенная вместе с Netscape Navigator 2.0, была известна, как Mocha. Осенью 1996 года Айк переписал бóльшую часть Mocha, чтобы разобраться с техническими огрехами и недоработками, возникшими, как следствие спешки при разработке. Новая версия была названа SpiderMonkey. Это название используется по сей день в JavaScript-движке браузера Firefox, внука Netscape Navigator.

В течение нескольких лет JScript и SpiderMonkey были единственными движками JavaScript. Особенности обоих движков, не всегда совместимые, определили вектор развития веба на ближайшие годы.

Основные особенности архитектуры

Несмотря на то, что JavaScript был рождён в спешке, некоторые мощные особенности были заложены в нём с самого начала. Эти особенности определяли JavaScript как язык и позволили ему перерасти собственные границы, несмотря на все его причуды.

Хотя создание синтаксиса, максимально близкого к Java, не было основной идеей JavaScript, рынок внёс свои коррективы. Возможно, для решения определённых задач больше подошёл бы другой синтаксис, однако благодаря использованию всем знакомого синтаксиса JavaScript с лёгкостью набрал популярность.

Сравните этот пример, написанный на Java:


с этим примером, написанным на JavaScript:

Функции как объекты

Функции в JavaScript — это просто ещё один тип объекта. Ими можно оперировать, как и любыми другими элементами. Их можно привязывать к переменным и, в более поздних версиях JavaScript, даже выбрасывать как исключения. Вероятней всего, что этой особенностью JavaScript обязан Scheme.


Благодаря тому, что функции рассматриваются как объекты, стали возможными различные функциональные паттерны:


Эти паттерны с успехом используются во множестве библиотек, таких, как underscore и immutable.js.

Прототипное программирование

Хотя прототипное программирование стало популярным благодаря JavaScript, впервые оно была представлено в Self. Айк отдавал предпочтение именно этому стилю программирования, оказавшемуся достаточно мощным, чтобы смоделировать более традиционный подход Simula-подобных языков, таких, как Java или C++. По большому счету, классы, реализованные в современной версии JavaScript, не что иное, как синтаксический сахар, которым посыпана прототипная система.

Создатели Self, языка программирования, вдохновившего Айка на введение прототипов в JavaScript, пытались избежать проблем, связанных с объектами в Simula-подобных языках. В частности, ветвление между классами и экземплярами стало причиной многих проблем, присущих Simula-подобным языкам. Неоднократно обсуждалась проблема, возникавшая, когда код программы развивался и становился больше: так как классы являлись архетипом для всех новых объектов, с ростом кода становилось всё сложнее адаптировать базовые классы под новые требования, возникавшие в процессе. Подобной проблемы можно избежать, делая новые экземпляры прототипов, из которых, в свою очередь, создавались бы новые объекты. Это и есть основная концепция прототипов: образец, которому можно задать его собственные параметры. Если прототип не подходил для нового объекта, его можно было клонировать и модифицировать, не оказывая никакого влияния на другие дочерние экземпляры. В языках, основанных на классах, осуществить такой подход крайне сложно.


Благодаря силе прототипов JavaScript получился на редкость гибким. На волне вдохновения разработчики создали огромное количество библиотек со своими собственными объектными моделями. Популярная библиотека Stampit выжимает из прототипной системы всё возможное для того, чтобы манипулировать объектами так, как это невозможно в традиционных языках, базирующихся на классах.

Прототипы сделали JavaScript обманчиво простым, дав разработчикам библиотек огромную силу.

Большая причуда: примитивы и объекты

Пожалуй, одной из самых больших ошибок, допущенных из-за спешки, в которой разрабатывался JavaScript, стало то, что объекты, ведущие себя совершенно идентично, могут быть различных типов. Например, тип строки (Hello world) не совпадает с типом нового объекта String (new String('Hello world')). Это порой приводит к нежелательным последствиям, которые могут сбить с толку.


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

По волнам моей памяти: взгляд на Netscape Navigator 2.0 и 3.0

Первая публичная версия JavaScript была встроена в Netscape Navigator 2.0, выпущенный в 1995 году. Благодаря чудесам виртуализации и устаревшим и неподдерживаемым сайтам мы можем заново пережить эти моменты счастья.


К сожалению, многие базовые функции JavaScript в то время не работали. Анонимные функции и цепочки прототипов, две самые мощные особенности, не работали так, как они работают сегодня. Тем не менее, эти особенности на тот момент уже были спроектированы и должны были воплотиться в жизнь в ближайшие годы. Следует заметить, что данная версия интерпретатора JavaScript считалась альфа-версией.

К огромной радости, годом позже был выпущен Netscape Navigator 3.0, и он очень сильно отличался от своего предшественника:

Такие возможности как регулярные выражения, JSON и исключения были ещё недоступны. В последующие годы развитие JavaScript происходило невероятно быстро.

ECMAScript: стандартизированный JavaScript

Первой большой переменой для JavaScript после его выпуска стала стандартизация ECMA. ECMA — ассоциация, созданная в 1961 году с целью стандартизации информационных и коммуникационных систем.

Работа над стандартизацией JavaScript началась в ноябре 1996 года. Стандарту, над которым работала группа TC-39, был присвоен идентификационный номер ECMA-262. К тому моменту JavaScript активно использовался на многих веб-страницах. В этом пресс-релизе 1996 года указано количество в 300000 страниц, использующих JavaScript.

Стандартизация стала для молодого языка не только важным шагом, но и серьезным вызовом. Она открыла JavaScript для большей аудитории и дала возможность сторонним разработчикам принимать участие в развитии языка. Она также помогла держать других разработчиков в рамках. В те времена бытовало опасение, что Microsoft или кто-либо ещё могут слишком сильно отклониться от оригинальной реализации языка, что могло привести к фрагментации.

Из-за проблем с торговой маркой ECMA не могла использовать JavaScript в качестве названия. После непродолжительных дебатов было решено, что описанный стандартом язык программирования будет назван ECMAScript. На сегодняшний день JavaScript это всего лишь коммерческое название ECMAScript.

Прежде чем приступать к выпуску статей посвященных разбору различных сценариев JavaScript, я хочу рассказать о том, как создавался JavaScript, какие на него были возложены цели и попытаться немного заглянуть в его будущее.

Начало разработки

События, предшествовавшие его появлению происходили в период с мая по декабрь 1995 года, когда компания Netscape продвигала себя в области интернет–технологий, благодаря своему браузеру Netscape Communicator, благополучно завоевывающему позиции у NCSA Mosaic.

Компания Netscape была создана группой энтузиастов, ранее работавшими в вышеупомянутой Mosaic. Команду объединяла общая идея по поиску решений в развитии интернета, именно это и стало толчком для создания JavaScript.

Как создавался JavaScript и особенности архитектуры — Начало разработки. 2

Как создавался JavaScript и особенности архитектуры — Начало разработки. 3

Так появился скриптовый язык Mocha, встраиваемый в HTML–документы, позже переименованный в LiveScript, способный хоть как–то оживить статичные сайты придав им чуточку интерактивности. Таким образом кроме огромного вклада в развитие интернет–паутины Netscape значительно популяризировали собственный браузер Netscape Navigator, благодаря наличию поддержки LiveScript.

Как создавался JavaScript и особенности архитектуры — Начало разработки. 4

В то же время веб–инженеры компании Sun Microsystems были заняты разработкой языка Jаva (на тот момент Oak), несущего в себе схожий с LiveScript функционал возможностей разработки, правда в отличии от первого, Java был достаточно сложен в освоении, а структура кода была куда массивнее, сравните этот пример написанный на JS:

С этим примером написанным на Java:

И тут в нашей истории появляется Брендан Эйк, создатель JavaScript. Изначально задачей Брендана была разработка функционального диалекта программирования Scheme с максимально упрощенным синтаксисом при написании кода, берущим корни от языка программирования Lisp. Но Эйк не упустил возможности приложить руку к разработке не побоюсь этого слова революционного для своего времени языка программирования JavaScript, присоединившись к команде.

Как создавался JavaScript и особенности архитектуры — Начало разработки. 7

Перед её участниками была установлена задача разработать полностью функциональный прототип языка в сжатое время. Sun Microsystems уже завершали разработку собственного языка программирования Java, а Netscape уже были готовы заключить контракт с компанией, дабы встроить поддержку среды Java в свой браузер, но таким образом ставя под сомнение наличие поддержки собственного языка Mocha.

Как создавался JavaScript и особенности архитектуры — Начало разработки. 8

Так зачем же Netscape тратили множество ресурсов на разработку новой среды программирования при наличии полностью готовой, а в некоторых моментах более функциональной альтернативы? Дело в том, как я упоминал ранее Mocha (LiveScript, JavaScript) был ориентирован на непрофессиональную относительно программирования аудиторию, а именно на дизайнеров и кодеров–любителей, Java же наоборот был предназначен для профессионалов, в то время как Mocha должен был стать эдаким серым кардиналом и применяться для некрупных скриптовых задач в HTML.

Как создавался JavaScript и особенности архитектуры — Начало разработки. 9

И вот Netscape решили начать детальное изучение устройства синтаксиса Java, и даже начали разработку собственной виртуальной машины, но проект не обернулся, так как инженерам компании не удалось достичь должной совместимости с виртуальной средой Sun Microsystems.

Проблема выбора языка программирования обострялась нехваткой времени, претендентами были Python, Tcl и Scheme, Брендану требовалось принять решение как можно быстрее. На фоне конкурентов, у Эйка была пара преимуществ – он не был ограничен свободой и имел набор всех необходимых возможностей, в том числе и прямую связь со своим заказчиком.

Именно в таких ограниченных по времени условиях родился язык Mocha, или как он теперь называется – JavaScript. Всего за несколько дней уже был готов функционирующий прототип, чуть позже, в мае 1995 года оный был интегрирован в браузер Netscape Communicator. Вскоре Mocha был переименован в LiveScript, потому что слово Live в названии, по мнению маркетологов являлось более привлекательным и дружелюбным в отношении потенциальных пользователей.

Как создавался JavaScript и особенности архитектуры — Начало разработки. 11

Зимой 1995 года сделка среди компаний Netscape и Sun Communications была наконец завершена, и вот Mocha (LiveScript) снова был переименован, но уже в известный нам JavaScript, ориентированный для работы мелких задач в HTML–браузерах, а Java так и остался в нише профессиональных языков программирования и применялся в основном для разработки сложных веб–компонентов.

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

Как создавался JavaScript и особенности архитектуры — Начало разработки. 12

Безусловно изначальной задачей у инженеров Netscape не стояло создания упрощенного синтаксиса максимально похожего на Java, но рынок и маркетологи внесли свои коррективы, которые пошли новой среде разработки только на пользу, ведь благодаря наличию и возможности использования знакомого многим синтаксиса, JavaScript и удалось набрать такую популярность, само собой не без помощи тех возможностей, которые он предоставлял для реализации задумок веб–разработчиков.

Теперь давайте рассмотрим особенности архитектуры языка.

Функции

Как создавался JavaScript и особенности архитектуры — Функции. 1

Функции в JavaScript являются дополнительным типом объекта, с возможностью оперирования ими, как всеми остальными элементами в коде, возможностью привязки к переменным, а в более актуальных, то есть поздних версиях языка была добавлена возможность проброса исключения функции.

Давайте рассмотрим вот такой код:

Ошибка, заложенная в него, запланирована через оператор setTimeout, в таком случае try. catch ее не распознает, так как на момент запуска функции код заложенный в setTimeout уже завершится, а интерпретатор покинет блок try. catch

Поэтому setTimeout и try. catch должны находиться в одной и той же функции, чтобы найти ошибку внутри неё. Такой особенностью, к слову JavaScript скорее всего обзавелся именно благодаря наработкам Scheme от Брендана Эйка.

Более подробно об основах языка вы можете узнать в этой статье:

Объектная система

Как создавался JavaScript и особенности архитектуры — Объектная система. 1

Оператор может включать в себя такие методы как toString и valueOf. Основным преимуществом прототипной системы является гибкость в написании кода. На практике это выражается в том, что в JS функция–конструктор может определять начальный набор свойств и может добавлять или удалять свойства динамически, для всех, либо отдельно выбранных объектов.

Для людей с опытом использования абстрактных классов в Java это может показаться скорее недостатком, чем преимуществом, но если научиться грамотно этим пользоваться, то для многих этого будет не хватать при работе с другими языками

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

Проблемы языка

Как создавался JavaScript и особенности архитектуры — Проблемы языка. 1

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

Язык создавался в спешке, и это заметно, так, самой главной проблемой JS является то, что объекты несущие в себе абсолютно идентичный результат работы, могут быть различных типов. Рассмотрим такой код:

Тип первой строки не совпадает с типом нового объекта new String(‘Hello World’) и зачастую это приводит к печальным последствиям, которые могут сбить кодера с толку.

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

Как развивался браузер Netscape

Как создавался JavaScript и особенности архитектуры — Как развивался браузер Netscape. 1

Говоря об одном из самых значимых языков программирования в истории и команде Netscape, которая явила его миру, нельзя не упомянуть о другом важном продукте компании, который является важной частью в истории появления и развития JS – браузере Netscape Navigator.

Как создавался JavaScript и особенности архитектуры — Как развивался браузер Netscape. 2

Браузер, разрабатываемый известной нам командой Netscape, просуществовал с 1994 по 2007 год, и в период зарождения интернета, был эдаким Google Chrome своего времени.

Как создавался JavaScript и особенности архитектуры — Как развивался браузер Netscape. 3

Как создавался JavaScript и особенности архитектуры — Как развивался браузер Netscape. 4
Как создавался JavaScript и особенности архитектуры — Как развивался браузер Netscape. 6
Как создавался JavaScript и особенности архитектуры — Как развивался браузер Netscape. 8

А в 1993 году свет увидели Cello, Arena, Lynx, tkWWW и тот самый NCSA Mosaic, разработанный организацией National Center for Supercomputing Applications (сокращенно NCSA) для разных платформ. Уже в 1994 году пользовательский интерфейс браузера считался эталонным, и на него ориентировались практически все разработчики, а в 1995 году благодаря свободному распространению и бесплатному лицензированию движка для некоммерческих проектов, браузеры разработанные на Mosaic, включая его самого доминировали в сети.

Как создавался JavaScript и особенности архитектуры — Как развивался браузер Netscape. 9

Для тех кто не знает, должен сказать, что для работы над дефолтным браузером Internet Explorer в Windows 95, Microsoft купила лицензию Mosaic. В 1995 году для свободной инсталляции в сети появилась вторая ревизия веб–обозревателя Internet Explorer. В итоге вышло так, что доминантами в сети стали Netscape Navigator и Internet Explorer, в дальнейшем оба браузера стали очень серьезно конкурировать, пытаясь обскокать друг друга, попутно принося огромную пользу развивающемуся интернету.

Как создавался JavaScript и особенности архитектуры — Как развивался браузер Netscape. 10

Одни из самых первых бета–версий браузера были опубликованы в 1994 году, на этот момент разработка браузера от Netscape предоставляла самый большой спектр функционала пользователям, что обеспечило безукоризненный успех, рост популярности и, как следствие, лидерство в своей нише.

Как создавался JavaScript и особенности архитектуры — Как развивался браузер Netscape. 11

Во втором выпуске браузера разработчиками была интегрирована полностью функциональная подсистема для работы с электронными письмами, вследствие чего Netscape стал не просто браузером, а целым семейством софта для работы с интернет–сервисами. Также самое главное, что нас интересует, это поддержка паблик–версии JavaScript, благодаря чему это был первый и какое–то время единственный браузер с поддержкой просмотра динамических веб–страниц.

В то время, к сожалению, не все главные функции JavaScript работали должным образом, так, например, анонимные функции и цепочки прототипов не функционировали так, как сейчас, но самое главное, уже в то время был заложен серьезный фундамент с перспективой развития среды программирования на многие годы вперед.

Как создавался JavaScript и особенности архитектуры — Как развивался браузер Netscape. 12

Третья версия самого популярного на тот момент времени браузера содержала встроенный HTML–редактор Netscape Composer для отладки и веб–разработки, его наличием компании удалось расширить в несколько раз аудиторию пользователей. Кроме всего появилась возможность кастомизации интерфейса, с помощью специальных плагинов. Этот выпуск серьезно отличался от предыдущего, но такие возможности как регулярные выражения, исключения и JSON еще не были доступны.

Заключение

Как создавался JavaScript и особенности архитектуры — Заключение. 1

С течением времени развитие JavaScript стало происходить со скоростью света, его спектр возможностей и сферы применения стали разрастаться в геометрической прогрессии, теперь кроме выполнения мелких задач в HTML–документах, JS применяется в разработке мобильных приложений и систем для интернет–вещей, и со временем этот список становится лишь только больше.

Брендан Айк - JavaScript

Брендан Айк
Создатель языка JavaScript

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

Язык JavaScript — это клиентский язык web-программирования, который был создан в 1995 году, разработчиком Бренданом Айком.

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

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

Интерпретатор языка JavaScript, является частью веб-браузера, когда веб браузер открывает страницу сайта, браузер создаёт объектную модель документов (DOM), интерпретатор JavaScript получает доступ к DOM и благодаря этому, вебмастера создавая различные скрипты (web-приложения) могут управлять и манипулировать объектами страницы (всеми тегами: абзацами, заголовками, таблицами, формами и т.д.).

История JavaScript

В 1995 году компания Netscape, дала задание программисту Брендану Айку создать язык web-программирования, который можно было бы встраивать в HTML-документ и для работы с которым не нужен был web-server.

Вместе с Бренданом Айком в проекте участвовали и другие программисты:
Марк Андерссен (создал первый в мире браузер — Mosaic ),
Билл Джой работник компании Sun (данная компания в 2010 году была куплена корпорацией Oracle ).

В те далёкие времена, наиболее популярными языками программирования, были C и Java , поэтому при создании JavaScript, пытались делать так чтобы его синтаксис был на них немного похож.

Изначально язык JavaScript имел имя LiveScript, но ради популяризации языка (и в маркетинговых целях) его назвали JavaScript, что вызвало немало замешательств среди начинающих вебмастеров ибо языки Java и JavaScript абсолютно разные по отношению друг к другу (они лишь немного схожи синтаксически). Кстати сам язык Java принадлежит компании Sun.

Чтобы еще больше популяризировать язык JavaScript, его сделали открытым, общедоступным, а потом стандартизировали. Сам стандарт носит название ECMA-262, а имя языка JavaScript, в стандарте записывается как ECMAScript.

В 1996 г. компания Microsoft, на основе этого стандарта разработала свой язык сценариев и назвала его JScript.

Первые браузеры начали поддерживать JavaScript уже в 1996 году, это были: Netscape 2.0 и Internet Explorer 3.0

Характеристики языка JavaScript

Сценарный — при созданий программ, их ненужно компилировать (как например в языках Си, Си++, Паскаль или Бэйсик), просто создаёте скрипт-программу в текстовом редакторе, а интерпретатор JavaScript (который уже встроен в веб-браузер), потом этот скрипт обрабатывает и выполняет.

Клиентский — интерпретатор скриптов находится не на web-сервере (как например у серверных языков — PHP или Perl) , а в веб-браузере, поэтому для создания и выполнения скриптов JavaScript, устанавливать веб-сервер не нужно, необходимы лишь текстовый редактор (например Блокнот или популярный нынче Sublime Text 3) и веб-браузер (например FireFox, Opera, IE или Chrome и т.д.) .

Прототипно-ориентированный — JavaScript поддерживает создание и наследование объектов, однако классы в нём отсутствуют.

Динамическая типизация — в отличие от других языков программирования, таких как Си, Си++ или Паскаль, переменные в JavaScript во время исполнения программы, имеют возможность менять свой тип данных. Это происходит потому, что тип данных в JavaScript, присваивается не во время объявления переменной, а во время её инициализации.

Функции — в языке JavaScript, функции являются объектами первого класса, это означает, что переменным вместо значения, также можно присваивать и функции.

Автоматическая очистка памяти — при исполнении программ, интерпретатор JavaScript самостоятельно очищает память от неиспользуемых элементов.

Читайте также: