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

Дело не в тебе, а во мне…

В 1995 году Netscape Communications наняла Брендана Эйха для добавления нового языка в Netscape Navigator. Самый популярный веб-браузер того времени. Netscape хотела увеличить программируемость Интернета. Результат: LiveScript был выпущен в конце 1995 года с бета-версией браузера и был переименован в JavaScript перед окончательным выпуском. Чтобы извлечь выгоду из партнерства Netscape с Sun Microsystems, компанией. Стоящей за популярным языком Java (хотя JavaScript по существу не имеет ничего общего с Java).

Эйч, который стал соучредителем Mozilla, разработал оригинальную версию JavaScript за 10 дней.

В течение следующей четверти века JavaScript превратился из широко нелюбимого и серьезно ограниченного языка в мощный фундамент. На котором построены современные веб-приложения. Сегодня JavaScript доминирует в браузере и завоевал большую часть серверного пространства с помощью Node.js…

Однако JavaScript не является языком, любимым каждым разработчиком. В первые дни Эйх принимал причудливые решения. Которые остаются с нами и в 2019 году — прототипическое наследование. “это” и агрессивное и непоследовательное принуждение типов JavaScript.

В последние годы разработчики создали альтернативы JavaScript.

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

Дротик

Dart-это объектно-ориентированный C-подобный язык, созданный Google в качестве замены JavaScript. Он избавляется от системы наследования прототипов JavaScript в пользу более традиционного объектно-ориентированного подхода. Который будет знаком любому. Кто работал с Java или C++.

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

Пожалуй, самой интересной особенностью Dart является его доступность за пределами Интернета. Код Dart может быть перенесен в JavaScript для работы в браузере. Но он также может быть использован для автономных приложений и разработки на стороне сервера. Google Flutter UI toolkit-это портативный интерфейсный фреймворк. Который можно использовать для создания собственных приложений на настольных компьютерах. Мобильных устройствах и в Интернете.

МашиНопись

TypeScript-это запись Microsoft в гонке за лучшим JavaScript. В отличие от Dart, TypeScript-это не совсем новый язык, а надмножество JavaScript. Допустимый JavaScript может быть скомпилирован компилятором TypeScript. Но TypeScript добавляет несколько новых функций. Которые улучшают и модернизируют ограничения JavaScript. Наиболее важной из которых является необязательная система типов.

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

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

Стоит отметить, что TypeScript более популярен, чем его конкурент Google. Угловая структура разработана с помощью TypeScript, хотя это проект Google. TypeScript можно использовать с React и Vue тоже.

СМОТРИТЕ БОЛЬШЕ: Возьмите свое обучение JavaScript за пределы классной комнаты с помощью этих забавных инструментов!


Вяз

Dart и TypeScript имеют узнаваемое родство с JavaScript, а C. Elm отличается. Это статически типизированный функциональный язык, более похожий на Haskell. Чем C. Но без головокружительной сложности Haskell.

Elm-это, по сути, доменный язык для создания веб-интерфейсов.

Elm не является языком общего назначения, как JavaScript. И не пытается им быть; вместо этого создатель Эван Чаплицки сосредоточен на создании наилучшего опыта разработки интерфейсных веб-приложений. Главное преимущество Elm заключается в том. Что благодаря статическим типам и неизменяемым значениям он устраняет многие потенциальные ошибки во внешнем коде.

Elm рекламирует себя как язык, который “практически не имеет исключений во время выполнения”, а это означает. Что если программа Elm вообще работает. То она вряд ли столкнется с показательными ошибками в производстве.

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

модель + 1 модель - 1 view model = div [] [ button [ onClick Decrement ] [ text . Кнопка [ onClick Increment ] [ text 

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

ClojureScript

Продолжая наше путешествие от JavaScript-подобных языков, мы приходим к ClojureScript, версии языка программирования Clojure. Который может быть скомпилирован в JavaScript. Clojure-это Lisp, который работает на виртуальной машине Java. Как и Elm, Clojure-это функциональный язык с неизменяемыми типами данных. В отличие от Elm. Это универсальный язык программирования. Который может использоваться на бэкэнде с JVM и фронтэнде через JavaScript.

(ns hello-world.core)
(println "Hello world!")

Как и все лиспы. Clojure пишется в S-выражениях. Разделенных скобками. По словам создателя Clojure Рича Хики. ClojureScript “стремится устранить слабое звено в истории разработки клиентских/встроенных приложений. Заменив JavaScript на Clojure, надежный. Лаконичный и мощный язык программирования.” Clojure можно использовать с React и другими популярными фреймворками JavaScript.

Кстати, когда Netscape наняла Брендана Эйха, они планировали интегрировать Scheme в Navigator. А не создавать новый язык. Scheme — это Lisp, поэтому. Если бы история сложилась немного иначе. Lisp мог бы стать самым популярным семейством языков программирования в мире. JavaScript сохранил часть своей “шепелявости” с помощью первоклассных функций. Замыканий и лямбд. Дуглас Крокфорд, сыгравший ключевую роль в разработке JavaScript и изобретший JSON, называет JavaScript “Лиспом в одежде Си

ПОДРОБНЕЕ: Обзор экосистемы JavaScript заключает. Что React является самым популярным фреймворком

Phoenix LiveView

Языки, которые мы рассмотрели. Компилируются в JavaScript. Они позволяют разработчикам создавать клиентские приложения без написания JavaScript.

Phoenix LiveView отличается. Phoenix-это веб-фреймворк. Написанный на относительно новом языке программирования Elixir. Phoenix-это серверный фреймворк, так почему же мы говорим о нем в статье. Посвященной альтернативам JavaScript для браузера? Потому что LiveView может заменить JavaScript во многих сценариях веб-разработки.

Создатель Phoenix Крис МакКорд называет LiveView “захватывающей новой библиотекой. Которая обеспечивает богатый пользовательский опыт в реальном времени с серверным HTML-рендерингом”. LiveView использует каналы Phoenix для создания двусторонней связи между браузером и сервером. LiveView основан на Websockets и может использоваться для создания интерактивных интерфейсов без написания JavaScript. Естественно опасаться. Что такой подход будет слишком медленным. Чтобы быть полезным. Но LiveView предназначен для минимизации передачи данных и на практике может использоваться для создания интерфейсов с низкой задержкой.

У LiveView есть свои ограничения. Не рекомендуется создавать сложное приложение. Подобное Google Docs. В LiveView. Если автономная функциональность важна для приложения. То LiveView не является правильным решением. Однако для таких функций, как формы. Обновления интерфейса в реальном времени и проверка данных. Phoenix LiveView является жизнеспособной альтернативой JavaScript. Он также намного меньше. Чем большинство приложений JavaScript; код браузера LiveView составляет около четверти размера React.

Заключительные мысли

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

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