IT имена: Brendan Eich (Брендан Айк) - JavaScript
17 мая 2021 г., 15:45:27Содержание статьи:
- История JavaScript
- Биография Брендана Айка
- Первая версия JavaScript
- Различные реализации
- Описание
- Характеристики языка
- Что может JavaScript в браузере?
- Чего НЕ может
- Зачем изучать JavaScript?
- Проблемы
- Что делает JavaScript особенным?
- Вакансии с технологией JavaScript
- Заключение
История JavaScript
События, в результате которых появился JavaScript, разворачивались в течение шести месяцев, с мая по декабрь 1995 года. Компания Netscape Communications уверенно прокладывала себе путь в области веб-технологий. Её браузер Netscape Communicator успешно отвоевывал позиции у NCSA Mosaic, первого популярного веб-браузера. Netscape была создана людьми, принимавшими участие в разработке Mosaic в ранние 90-е. Теперь, с деньгами и независимостью, у них было всё необходимое для поиска способов дальнейшего развития веб-технологий. Именно это послужило толчком для рождения JavaScript.
Основатель Netscape Communications и бывший участник команды Mosaic Марк Андриссен считал, что веб должен стать более динамичным. Анимации, взаимодействие с пользователями и другие виды интерактивности должны стать неотъемлемой частью интернета будущего. Веб нуждался в лёгком скриптовом языке, способном работать с DOM, который в те дни не был стандартизирован. Существовало одно «но», являвшееся на тот момент серьёзным вызовом: этот язык не должен был предназначаться для крупных разработчиков и прочих людей, имевших отношение к инженерной стороне вопроса. Java в те дни уже активно развивалась и твёрдо заняла эту нишу. Таким образом, новый скриптовый язык должен был предназначаться для совершенно иной аудитории — дизайнеров. Очевидно, что веб был статичным, а HTML был достаточно молод и прост в освоении даже для тех, кто не имел ничего общего с программированием. Следовательно, всё, что должно было стать частью браузера и сделать веб более динамичным, должно быть максимально понятным для далёких от программирования людей. Из этого предположения родилась идея Mocha, который должен был стать тем самым простым, динамичным и доступным скриптовым языком.
И тут в нашей истории появляется Brendan Eich (Брендан Айк), отец JavaScript. Айк должен был разработать для Netscape «Scheme для браузера». Scheme — это динамичный, мощный и функциональный диалект языка программирования Lisp с максимально упрощённым синтаксисом. Вебу требовалось что-то подобное: простое в освоении, динамичное, немногословное и мощное. Айк не стал упускать шанса поработать над тем, что ему нравилось, и присоединился к команде.
Биография Брендана Айка
Брендан Айк или Эйх (англ. Brendan Eich /ˈaɪk/, родился 4 июля 1961, Питтсбург, Пенсильвания, США) — американский программист, создатель языка программирования JavaScript. Айк получил степень бакалавра в университете округа Санта-Клара. В 1986 году получил степень магистра в Иллинойсском университете в Урбана-Шампейн. Айк начал карьеру в Silicon Graphics, где проработал семь лет. Следующие три года проработал в MicroUnity Systems Engineering.
Айк больше всего известен своей работой в Netscape и Mozilla. Он начал работу в Netscape в апреле 1995 года, где разработал язык программирования, изначально называвшийся «Mocha», затем переименованный в «LiveScript», и наконец переименованный в JavaScript для браузера Netscape Navigator. В начале 1998 года участвовал в открытии mozilla.org в качестве главного архитектора. Когда в июле 2003 года AOL закрыла подразделение Netscape, Айк перешёл в Mozilla Foundation.
В августе 2005 года, проработав главным технологом и членом совета директоров Mozilla Foundation, Брендан стал техническим директором Mozilla Corporation, а 26 марта 2014 года был назначен исполнительным директором.
Однако уже 3 апреля он покинул этот пост в ответ на протест ЛГБТ-сообщества США (в частности, отмечали обращение к пользователям Firefox сайта OkCupid) из-за того, что в 2008 году поддержал калифорнийский законопроект о запрете однополых браков пожертвованием 1000 долларов США.
Первая версия 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 не принадлежит ни одной компании. Однако само название JavaScript зарегистрировано за Oracle, которой также принадлежит Java.
Характеристики языка
Сценарный — при созданий программ, их ненужно компилировать (как например в языках Си, Си++, Паскаль или Бэйсик), просто создаёте скрипт-программу в текстовом редакторе, а интерпретатор JavaScript (который уже встроен в веб-браузер), потом этот скрипт обрабатывает и выполняет.
Клиентский — интерпретатор скриптов находится не на web-сервере (как например у серверных языков — PHP или Perl), а в веб-браузере, поэтому для создания и выполнения скриптов JavaScript, устанавливать веб-сервер не нужно, необходимы лишь текстовый редактор (например Блокнот или популярный нынче Sublime Text 3) и веб-браузер (например FireFox, Opera, IE или Chrome и т.д.).
Прототипно-ориентированный — JavaScript поддерживает создание и наследование объектов, однако классы в нём отсутствуют.
Динамическая типизация — в отличие от других языков программирования, таких как Си, Си++ или Паскаль, переменные в JavaScript во время исполнения программы, имеют возможность менять свой тип данных. Это происходит потому, что тип данных в JavaScript, присваивается не во время объявления переменной, а во время её инициализации.
Функции — в языке JavaScript, функции являются объектами первого класса, это означает, что переменным вместо значения, также можно присваивать и функции.
Автоматическая очистка памяти — при исполнении программ, интерпретатор JavaScript самостоятельно очищает память от неиспользуемых элементов.
Что может JavaScript в браузере?
Современный JavaScript – это «безопасный» язык программирования. Он не предоставляет низкоуровневый доступ к памяти или процессору, потому что изначально был создан для браузеров, не требующих этого.
Возможности JavaScript сильно зависят от окружения, в котором он работает. Например, Node.JS поддерживает функции чтения/записи произвольных файлов, выполнения сетевых запросов и т.д.
В браузере для JavaScript доступно всё, что связано с манипулированием веб-страницами, взаимодействием с пользователем и веб-сервером.
Например, в браузере JavaScript может:
- Добавлять новый HTML-код на страницу, изменять существующее содержимое, модифицировать стили.
- Реагировать на действия пользователя, щелчки мыши, перемещения указателя, нажатия клавиш.
- Отправлять сетевые запросы на удалённые сервера, скачивать и загружать файлы (технологии AJAX и COMET).
- Получать и устанавливать куки, задавать вопросы посетителю, показывать сообщения.
- Запоминать данные на стороне клиента («local storage»).
Внедрение в документ происходит путем указания специальных тегов, означающих начало и конец скрипта - . Как правило, встраивать скрипт непосредственно в HTML-код считается моветоном. Более изящным и признанным способом является вынесение кода в отдельный файл, а затем подключение его в нужном месте страницы.
Что такое JavaScript в плане синтаксиса? Типичный код может выглядеть так:
Это самая простейшая реализация, с помощью которой можно увидеть базисные элементы и их использование. Объявление переменных в языке происходит путем указания ключевого слова var и последующего имени. Например, так: var variablename.
Чтобы присвоить ей некое значение, используется знак равенства. Есть 6 известных типов переменных в JavaScript. Это число, строка, булев, нуль, неопределённый и объект. Как правило, жёсткого указания типа при создании не требуется. То есть переменная может принимать практически любое значение. Более подробно о свойствах языка можно узнать из официальных руководств по нему.
Чего НЕ может
Возможности JavaScript в браузере ограничены ради безопасности пользователя. Цель заключается в предотвращении доступа недобросовестной веб-страницы к личной информации или нанесения ущерба данным пользователя.
Примеры таких ограничений включают в себя:
-
JavaScript на веб-странице не может читать/записывать произвольные файлы на жёстком диске, копировать их или запускать программы. Он не имеет прямого доступа к системным функциям ОС.
Современные браузеры позволяют ему работать с файлами, но с ограниченным доступом, и предоставляют его, только если пользователь выполняет определённые действия, такие как «перетаскивание» файла в окно браузера или его выбор с помощью тега input.
Существуют способы взаимодействия с камерой/микрофоном и другими устройствами, но они требуют явного разрешения пользователя. Таким образом, страница с поддержкой JavaScript не может незаметно включить веб-камеру, наблюдать за происходящим и отправлять информацию в ФСБ.
-
Различные окна/вкладки не знают друг о друге. Иногда одно окно, используя JavaScript, открывает другое окно. Но даже в этом случае JavaScript с одной страницы не имеет доступа к другой, если они пришли с разных сайтов (с другого домена, протокола или порта).
Это называется «Политика одинакового источника» (Same Origin Policy). Чтобы обойти это ограничение, обе страницы должны согласиться с этим и содержать JavaScript-код, который специальным образом обменивается данными.
Это ограничение необходимо, опять же, для безопасности пользователя. Страница https://anysite.com, которую открыл пользователь, не должна иметь доступ к другой вкладке браузера с URL https://gmail.com и воровать информацию оттуда.
-
JavaScript может легко взаимодействовать с сервером, с которого пришла текущая страница. Но его способность получать данные с других сайтов/доменов ограничена. Хотя это возможно в принципе, для чего требуется явное согласие (выраженное в заголовках HTTP) с удалённой стороной. Опять же, это ограничение безопасности.
Подобные ограничения не действуют, если JavaScript используется вне браузера, например — на сервере. Современные браузеры предоставляют плагины/расширения, с помощью которых можно запрашивать дополнительные разрешения.
Зачем изучать JavaScript?
JavaScript является одним из 3 языков все веб-разработчики должны узнать:
1. HTML Определение содержимого веб-страниц
2. CSS Указание макета веб-страниц
3. JavaScript Программирование поведения веб-страниц
Веб-страницы не являются единственным местом, где используется JavaScript. Многие настольные и серверные программы используют JavaScript. Node. js является наиболее известным. Некоторые базы данных, такие как MongoDB и CouchDB, также используют JavaScript в качестве языка программирования.
Проблемы
Связанные с безопасностью в JavaScript неприятности - использование так называемой атаки типа XSS. В её основе лежит внедрение скрипта в тело страницы, которая отображается пользователю. Код может получить права текущего посетителя и использовать их во вред, например, похитить личные данные.
Что такое куки и JavaScript? Куки - небольшая часть данных, которая отправляется веб-приложением на компьютер пользователя. Применяется для идентификации посетителей, записи их предпочтений или просто для хранения настроек сайта. Это могут использовать и злоумышленники с помощью JavaScript. Получив доступ к кукис, хакер может авторизоваться на сайте под профилем пользователя и похитить личные данные. Клиентское приложение, написанное на JavaScript, может подвергнуться обратной разработке, неправильно проходить авторизацию. Поэтому JavaScript не предоставляет средств по обеспечению достойного уровня безопасности.
Вопросы уязвимости и возникающих ошибок могут происходить и не по вине JavaScript. Многие браузеры содержат потенциальные «дыры» в своем коде. А JavaScript очень часто применяется лишь как инструмент их использования.
Нередко в Сети можно встретить вопрос от пользователей соцсетей: что такое JavaScript error «Вконтакте»? Это довольно распространённая проблема. Ее корень может скрываться в старом ПО, кеше или же в присутствии вирусов на компьютере. Для лечения нужно попробовать очистить кеш, обновить Java и Flash на ПК. Также очень часто люди интересуются тем, что такое JavaScript void 0. Если говорить простым языком, то веб-разработчик ввиду каких-то причин решил сохранить активность и деятельность какой-либо ссылки, при этом оставляя за ней возможность обрабатывать события, например, клик по ней.
Что делает JavaScript особенным?
Как минимум, три сильные стороны JavaScript:
JavaScript – это единственная браузерная технология, сочетающая в себе все эти три вещи.
Вот что делает JavaScript особенным. Вот почему это самый распространённый инструмент для создания интерфейсов в браузере.
Хотя, конечно, JavaScript позволяет делать приложения не только в браузерах, но и на сервере, на мобильных устройствах и т.п.
Вакансии с технологией JavaScript
Для поиска вакансий на сайте Apeirondb.com выберите в разделе с вакансиями город, страну и технологию, которые вас интересуют: Технология JavaScript. А также, очень легко осуществить поиск при помощи телеграм бота HIRE:bot(t.me/hireIT_bot) @hireIT_bot, который при правильной настройке, будет отправлять вам только вакансии с технологией JavaScript.
Заключение