Кто разработал язык программирования javascript
Перейти к содержимому

Кто разработал язык программирования javascript

  • автор:

Кто разработал язык программирования javascript

4. Основы JavaScript

  • Что такое JavaScript
  • Краткая история JavaScript
  • Запуск JavaScript
  • Размещение JavaScript на HTML-странице
  • Расположение тегов
  • Отложенные сценарии
  • Асинхронные сценарии
  • Основы языка
  • Иерархия объектов в JavaScript
  • Операторы
  • Инструкции
  • Функции
4.2. Краткая история JavaScript

По мере роста популярности Интернета обозначилась потребность в языках сценариев для клиентской стороны. Хотя большинство пользователей подключались к Интернету с помощью модемов на скорости 28,8 Кбит/с, размер и сложность веб-страниц постоянно росли. Хуже того: даже для простой проверки форм требовалось несколько раз обращаться к серверу. Только представьте, каково было заполнить форму, щелкнуть на кнопке отправки, подождать 30 секунд, пока информация будет обработана, и получить сообщение о том, что при вводе данных было пропущено обязательное поле. В компании Netscape, бывшей тогда на рубеже инноваций, начали всерьез задумываться о разработке языка сценариев для простой обработки данных на клиентской стороне.

Брендан Айк (Brendan Eich), работавший тогда в Netscape, в 1995 году начал создавать язык сценариев Mocha (позднее переименованный в LiveScript) для браузера Netscape Navigator 2. Предполагалось, что этот язык будет использоваться и в браузере, и на сервере (под названием LiveWire). Чтобы успеть завершить реализацию LiveScript до выпуска браузера, компания Netscape объединила усилия с Sun Microsystems. Незадолго до выхода Netscape Navigator 2 в Netscape решили переименовать LiveScript в JavaScript, чтобы попытаться извлечь выгоду из популярности Java.

JavaScript 1.0 оказался очень успешным, и Netscape выпустила его версию 1.1 в составе Netscape Navigator 3. Популярность Интернета стремительно росла, и Netscape заслуженно занимала ведущее место на этом рынке. Тем временем в Microsoft решили выделить больше ресурсов на разработку конкурирующего браузера Internet Explorer. Вскоре после выхода Netscape Navigator 3 корпорация Microsoft представила Internet Explorer 3 со своей реализацией JavaScript под названием JScript (чтобы избежать проблем с Netscape, связанных лицензированием). Вторжение Microsoft в мир веб-браузеров в августе 1996 года оказалось началом конца Netscape, но в то же время ускорило развитие JavaScript.

То, что JavaScript был реализован в Microsoft, означало, что появилось две версии языка: JavaScript (Netscape Navigator) и JScript (Internet Explorer). В отличие от С и многих других языков программирования, на тот момент не было никаких стандартов JavaScript, определяющих его синтаксис и функциональность, и существование разных версий языка только подчеркивало эту проблему. Чтобы развеять опасения представителей отрасли, было решено стандартизировать язык.

В 1997 году спецификация JavaScript 1.1 принята ECMA . Был организован ТС39 , перед которым стояла задача «стандартизировать синтаксис и семантику кросс-платформенного независимого языка сценариев общего назначения». Комитет ТС39 объединил программистов Netscape, Sun, Microsoft, Borland, NOMBAS и других компаний, проявляющих интерес к будущему языков сценариев, и за несколько месяцев разработал стандарт ЕСМА-262, определивший новый язык сценариев с названием ECMAScript.

В следующем году ISO и IEC также приняли ECMAScript в качестве стандарта (ISO/IEC-16262). С тех пор разработчики браузеров с переменным успехом используют ECMAScript как основу для реализации своих версий JavaScript.

Брендан Эйх о создании JavaScript за 10 дней и о том, что сегодня он сделал бы по-другому

Миллионы современных разработчиков активно используют язык программирования, который родился буквально за 10 дней в период экспоненциального развития интернета. Создатель JavaScript Брендан Эйх не так давно заново обратился к истокам созданного им языка и рассказал о том, как семена, посеянные им в 1995 году, теперь наконец-то взошли.

Брендан Эйх на dotJS conference

Итак, далекий 1995 год, совершенно другая эпоха. Да что уж там говорить — практически другой мир! Тогда Netscape даже рассматривала совокупность браузера и сервера как новый вид распределенной операционной системы, вспоминает журнал Computer. Браузеры обладали потенциалом, позволявшим разработчикам охватить пользователей на любой платформе — Windows, Mac или Linux, — но им не хватало еще одного важного ингредиента, «своего» языка программирования. Netscape очень хотелось, чтобы, помимо Java, появился еще один язык, который смог бы увлечь многих начинающих разработчиков — так же как в свое время Visual Basic от Microsoft.

Статья из журнала ComputerСтатья из журнала Computer

Вся технологическая индустрия тогда была охвачена желанием поспеть за поразительной популярностью интернета. «В те времена темпы развития веб-инноваций были бешеными, а Microsoft и вовсе сделала Интернет главным приоритетом своей новой операционной системы Windows 95 — в ответ на появление браузера и серверных продуктов Netscape.» Тогда 34-летний Брендан Эйх и разработал первую версию языка, который впоследствии превратился в JavaScript, всего за 10 дней. (Свой доклад на конференции dotJS Эйх начал словами: «22 года назад, в мае месяце, я 10 дней упорно работал», добавив: «И мало спал»).

Эйх как нельзя лучше справился с этой работой, ведь в студенческие годы он уже писал языки программирования, «просто чтобы поэкспериментировать с синтаксисом». Эйх вспоминает, что когда он дошел до лексического анализа и языковых парсеров, то «сразу же влюбился в эти штуки, потому что с теоретической точки зрения все выглядело очень красиво и чисто. ». Еще до прихода в Netscape в компании Silicon Graphics он занимался языками для встроенных расширений инструментов сетевого мониторинга. (Кроме того, Эйх рассказывал своему интервьюеру: «Я делал это ради забавы, просто чтобы создавать свои собственные языки»).

По сути, именно основатель Silicon Graphics Джим Кларк впоследствии и создал Netscape, так что интерес к способностям Эйха в написании языков у него уже был. «Когда все только началось, меня тут же позвали поработать, но я вынужден был отказаться, поскольку участвовал тогда в другом стартапе — и занимался им еще целый год», — недавно рассказал Эйх в интервью InfoWorld.

Ровно через год Netscape таки удалось переманить Эйха к себе на работу многообещающей перспективой поработать над языком под названием Scheme. Идея у них была следующая: «Переходи к нам и реализуй Scheme для Netscape. Внедри этот язык программирования в браузер». Позже Эйх назовет Scheme «тем прекрасным исследовательским проектом, с которого все началось». Однако к тому времени, когда он полностью перешёл в Netscape, компания уже заключила сделку с Sun Microsystems, которая вовсю продвигала свой новоиспечённый язык Java. «И внезапно возникла такая картина: «Ну, мы не знаем, нужен ли нам Scheme. Мы вообще не уверены, что нам так уж нужен крохотный язык, который мы хотели у тебя заказать. Может быть, обойдемся только Java?».

Этот переломный момент Эйх запомнил на всю оставшуюся жизнь. Еще в 2012 году в интервью журналу Computer он говорил, что его начали теснить сразу по двум направлениям. «Мы предчувствовали, что Microsoft рано или поздно доберётся до Netscape, она ведь уже пыталась купить компанию в конце 94-го. А ещё у нас была какая-то странная история с Java, потому что даже в Netscape многие люди думали: «Ну, раз уж у нас есть Java, действительно ли нам позарез нужен ещё один язык?». Люди не видели пользы от языка-компаньона Visual Basic который, между тем, ориентировался на целую когорту программистов-любителей, дизайнеров и новичков в компьютерном мире.»

Brendan Eich | Gen Kanai | Flickr

«Но Марк Андреессен из Netscape, Билл Джой из Sun, я и некоторые другие убедились, что существует потребность в доступном языке, который можно внедрить непосредственно в веб-страницу», — рассказывал он InfoWorld. Или, как он пояснил для журнала Computer, «я писал что-то, что могли бы использовать люди, не представляющие, что такое компилятор. Скрипты на моем языке можно было просто запустить — и всё тут.

«Это было похоже на Basic. Именно на такой эффект мы и рассчитывали».

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

Что было дальше

Как Эйх отреагировал на успех своего детища? «Когда проект начал набирать обороты, несмотря на многочисленные баги и поспешные решения, я был немного удивлён. Но шока у меня не было, потому что, если хорошенько подумать, все произошло по задуманному нами сценарию: раньше программисты могли написать веб-страницу, а теперь они могут ее запрограммировать!»

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

«Да, из-за спешки я наделал целую кучу ошибок. Но важно другое: я предвидел, что написать язык без багов будет весьма сложно, поэтому я сделал его очень гибким и податливым. Вы всегда можете исправить проблему, если она появилась по вине JavaScript».

Как он сказал публике на dotJS: «JavaScript очень сложно найти замену. Он чем-то походит на доминантный ген. Как только он проявился, от него уже никак не избавиться».

В качестве примера он приводит «открытие» asm.js и говорит, что это ещё одна вещь, которой он чрезвычайно гордится. В нём используются битовые операторы, входившие в оригинальный JavaScript, которые теперь являются основой языка для программ высокой производительности. «Если бы этих операторов не было там с 1995 года, их было бы сложно добавить в будущем. А тот факт, что он был там с самого начала, означает, что теперь можно писать невероятно быстрые программы на JavaScript».

В интервью InfoWorld он сказал, что это и есть его «семя, заложенное в оригинальный JavaScript в те самые 10 майских дней 1995 года». 32-битные математические операторы JavaScript (известные как побитовые операторы) ведут свою родословную от языка программирования C — и от Java. В конечном итоге это привело к WebAssembly — способу преобразования инструкций в быстро исполняемый двоичный формат для виртуальных машин — и осознанию того, что в движке JavaScript «может быть два языка — старый язык, который я сделал с фигурными скобками, функциями и операторами сдвига, и этот новый язык, двоичный, не предназначенный для чтения или написания людьми. Но он может быть сгенерирован компилятором, а затем успешно выполнен».

Что бы он сделал по-другому

Спустя 23 года рефлексии, нашлось ли что-нибудь, что он сделал бы по-другому? Кто-то говорит, что он должен был отказаться работать в таком напряженном графике — или что он должен был внедрить в Netscape другой язык, например Perl, Python или Scheme — но всё это Эйху изменить не хочется. Он лишь жалеет, что не был более избирателен в отношении отзывов, полученных от первых штатных тестировщиков JavaScript.

«Припоминаю, было вот такое любопытное замечание: «Мне бы хотелось иметь возможность сравнивать число со строкой, которая содержит это число. И при этом я не не хочу менять свой код, чтобы преобразовать строку в число или число в строку. Мне просто нужно, чтобы это работало. Сделай, пожалуйста, так, чтобы оператор equals говорил: «О, это похоже на двойку, а это похоже на строку с числом два. Они в достаточной мере равны».

«И я это натворил. Об этом я сейчас горько сожалею, потому что это нарушает важное математическое свойство, свойство отношения эквивалентности. В результате пришлось добавить второй вид оператора равенства, когда мы стандартизировали JavaScript». Одним из тех, кто помог стандартизации JavaScript, был Гай Стил, один из соавторов Scheme. «Гай сказал мне: “Не парься на этот счет. В Lisp вообще целых пять видов операторов равенства. А мы просто добавим еще один»».

Годы размышлений и наблюдений заставили Эйха взглянуть на те 10 майских дней с другой стороны. «Когда я смотрю на то, что сделал всего за 10 дней, я вижу вовсе не язык, а крохотное семя. Это было мощное, пусть и отчасти компромиссное, но всё же сильное ядро, которое выросло в полноценный язык.»

Эйх также является соучредителем сообщества Mozilla (а также фонда Mozilla Foundation, который разрабатывает проекты с открытым исходным кодом, например, веб-браузер Firefox). В 2015 году он стал генеральным директором компании Brave Software, которая создала блокирующий рекламу веб-браузер под названием Brave (его аудитория по итогам 2021 года составила 50 млн пользователей в месяц). Всё это проистекает из его стремления к конфиденциальности, хотя в конце интервью Эйх шутит, что если проследить всё до самых истоков, то JavaScript является одним из базовых элементов, которые рекламодатели используют для веб-слежки.

«Так что теперь я, как могу, компенсирую это упущение», — говорит он, смеясь.

  • javascript
  • языки программирования

Язык программирования JavaScript: история, особенности, перспективы

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

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

Немного истории

Первые предпосылки для появления этого языка появились еще в 1992 году, когда была начата разработка скриптового встраиваемого языка Cmm (Си минус минус). Позже он был переименован в ScriptEase, так как название Си минус минус имело негативный оттенок. В целом. Перед тем, как язык обрел свое современное имя, его название менялось еще несколько раз.

В 1995 году Брендан Эйх получил задачу внедрить язык программирования в браузер Netscape. Изначально язык назывался Mocha, затем LiveScript. Наконец, он получил свое современное имя – JavaScript. Здесь разработчики пошли на хитрость. В то время, когда они занимались улучшением LiveScript, довольно большой популярностью пользовался язык Java. Для того, чтобы привлечь больше разработчиков для работы с новым языком, было решено использовать в его названии Java. В итоге получился JavaScript.

Последняя на сегодняшний день версия языка ES6 вышла в 2015 году. С ее появлением язык обрел вторую жизнь. Появились новые стандарты, а также возможность работы с константами. Претерпел изменения и сам код. Язык придерживается принципа сокращения кода при большей функциональности.

Особенности языка JS

К основным особенностям этого языка программирования относятся:

  1. Динамическая типизация. То есть тип данных будет определяться только тогда, когда переменной или const будет присваиваться ее значение.
  2. Гибкая работа с функциями. В JS функции можно не только выполнять, но еще и возвращать функции из функций, передавать функции в качестве параметров другим функциями и присваивать функции в качестве значения переменных.
  3. JavaScript поддерживается всеми современным браузерами.
  4. Объектно-ориентированное программирование. То есть это такая методология программирования, в которой вся программа представляется в виде совокупности объектов.

Помимо этого, важной особенностью JavaScript является его развитая инфраструктура. На сегодняшний день разработчики могут работать с большим количеством библиотек и фреймворков (наиболее популярными из них являются React, Angular и Vue), несколькими сборщиками, вспомогательными библиотеками (например, Lodash) и генераторами статических сайтов.

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

Причем вся визуальная часть этого калькулятора – это сочетание HTML+CSS. То есть кнопки, диаграммы, ползунки – это статические элементы. С помощью JS все то анимируется, а также проводятся все основные расчеты.

Еще один пример – форма подписки или регистрации. Она создана на HTML+CSS. Однако взаимодействие с сервером обеспечивается именно благодаря JS. Помимо этого, на языке JavaScript можно создавать следующие программы и приложения:

  1. Разработка программного обеспечения для мобильных устройств (с помощью React Native).
  2. Разработка серверных решений с помощью Node.js.
  3. Создание десктопных приложений. JS используется, например, в приложениях, созданных компанией Adobe.
  4. Программирование бытовой техники и платежных терминалов.

Пример кода на JavaScript

Для того, чтобы оценить все прелести этого языка программирования, приведем простой пример кода на JS:

console.log (Привет, мир!)

Что делает эта строка? С ее помощью вы сможете в консоли браузера или среды разработки вывести надпись «Привет, мир!». Как видно, это очень простое решение, требующее всего одной строки кода. Такая простота отличает JS от многих других языков программирования, в которых для вывода этой надписи потребуется больше кода.

Преимущества и недостатки JS

Популярность JavaScript обусловлена множеством факторов, в том числе большим количеством преимуществ, к которым относятся:

  1. Незаменимость при разработке веб сайтов и приложений. Как уже отмечалось выше, JS поддерживается всеми современными браузерами. Причем язык легко интегрируется с версткой и сервером.
  2. Высокая скорость работы и производительность. Этот язык позволяет частично обрабатывать веб страницы на стороне пользователя. Это позволяет тратить меньше времени на открытие, а также снижает нагрузку на серверы.
  3. Большое количество инструментов и богатая инфраструктура. Если в первое время многие работали исключительно с самим языком, сегодня благодаря наличию множества библиотек, появились удобные и доступные для всех инструменты.
  4. Относительная простота. Написание программ занимает обычно меньше времени. При этом, объем кода также обычно меньше, в сравнении со многими другими языками.
  5. Широкие возможности для веб-страниц. С помощью JS вы можете оживить любую страницу в сети Интернет. Помимо этого, JS значительно повышает уровень юзабилити приложений и сайтов.
  6. Относительная легкость изучения. Начать учиться JS можно даже тем, кто вообще до этого не сталкивался с программированием. Причем визуализация многих действий прибавляет обучающимся энтузиазма.

Что касается недостатков, к ним можно отнести следующие моменты:

  1. Отсутствует возможность загрузки и чтения файлов.
  2. Нестрогая типизация. Все недостатки кода выявляются на этапе работы программы, что может быть неудобно в ряде случаев. К тому же, нестыковки, которые могут быть в коде JS игнорируются самим языком.
  3. Уровень безопасности. В такой язык программирования как JS достаточно просто внедрить вредоносный код.

Перспективы

Насколько вообще JS интересен будущим программистам с точки зрения перспектив? Стоит ли начинать его изучение ребенку? На самом деле, этот язык постоянно развивается и внедряются новые решения. Большое количество библиотек говорит о том, что JS сегодня очень популярен. И это вполне объяснимо.

Сегодня каждая компания хочет быть представлена в сети Интернет. Причем готовые шаблоны сайтов мало кого интересуют. Поэтому верстку и программирование доверяют программистам. И это далеко не все.

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

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

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

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

Brendan Eich (создатель языка JavaScript) между делом пишет о том, как язык создавался, и почему он такой, какой есть.

JS был обязан «выглядеть как Java», только поменьше, быть эдаким младшим братом-тупицей для Java. Кроме того, он должен был быть написан за 10 дней, а иначе мы бы имели что-то похуже JS.

что-то вроде PHP, только еще хуже. Его босс Netcsape быстро «зарубил» (в июле 1995, если мне не изменяет память; я сдлелал JS в начале/середине мая), т.к. это был уже третий язык после Java и JS. Было и так трудно обосновать то, что у нас 2 новых языка программирования для web.

В то время мы должны были двигаться очень быстро, т.к. знали, что Microsoft идет за нами.

Считайте, что JavaScript (пожалуйста, только не «JScript») спас вас от VBScript.

10 дней на то, чтобы сделать лексер, парсер, компилятор в байткод (bytecode emitter), интерпретатор, встроенные классы и декомпилятор. Помощь была только с файлом jsdate.c — от Ken Smith из Netscape (который, по нашему излишне оптимистичному соглашению, склонировал java.util.Date — Y2K баги и т.д. Гослинг. ).

Простите, времени было мало для того, чтобы сделать правильную оптимизацию хвостовой рекурсии. 10 дней почти без сна, чтобы сделать JS с чистого листа, заставить его «выглядеть как Java» (я сделал, чтобы он выглядел как C), и тайком протащить туда его спасительные фишки: first class functions (замыкания сделал позже, но они были частью плана сразу) и прототипы (примерно как в языке Self).

I’ll do better in the next life.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *