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

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

Сам язык прошел чрезвычайно долгий путь от использования только в качестве помощника для взаимодействия на веб-сайтах до полноценного, универсально полезного языка программирования. Мы проведем вас в путешествии от его создания до дней TypeScript.

Младенчество JavaScript

На заре Интернета все веб-сайты были статичными. До 1995 года не было возможности сделать веб-сайты динамическими; Это означает, что было невозможно изменить содержание веб-страницы в ответ на различные условия. Вот почему в 1995 году был создан JavaScript. Брендану Эйху, создателю языка, была поставлена ​​простая задача - сделать интерактивность возможной. У создания Эйха была четкая цель, и поэтому она была реализована. Вот и все.

Как сказал отец JavaScript:

Я получил маркетинговый приказ сделать его [JavaScript] похожим на Java, но не сделать его слишком большим для своих штучных размеров. Это просто глупый язык младших братьев, верно? Напарник Java.

Асинхронные действия в браузере

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

Первым широко распространенным примером такого нововведения стало разрешение Microsoft Internet Explorer 5 выполнять HTTP-запросы. В 1999 году они реализовали объект под названием «XMLHttpRequest», который позволял получать данные из внешнего источника без перезагрузки страницы.

Почему вообще была реализована эта функция? Короче говоря, MSFT сделала это только для того, чтобы веб-сайт Outlook получал электронные письма в фоновом режиме. Долгосрочные эффекты были гораздо больше, чем просто улучшение работы одного веб-сайта.

По словам Моники Мазурчак, фронтенд-разработчика ITMAGINATION:

«[Microsoft's XMLHttpRequest] был одним из двух наиболее важных событий в мире JavaScript. Асинхронные действия позволили пользователям делать больше без необходимости перезагружать страницу, что было огромным преимуществом с точки зрения UX ».

Предстояло решить еще одну большую проблему. Были большие различия в реализациях движка JavaScript, и даже были разные языковые варианты для каждого браузера! Например, в Netscape был JavaScript, а в IE - Jscript. Несмотря на то, что реализация MSFT была до некоторой степени совместима с JavaScript (поскольку оба основывались на спецификации ECMAScript), реализация была принципиально иной.

jQuery - сборка для разных браузеров без головной боли

В 2006 году мир увидел решение, направленное на устранение проблемы. Четырнадцать лет назад увидел свет jQuery, абстрагирующий различия в реализациях. На изображении, которое вы видите выше, показано, как jQuery справился с различиями в реализациях между браузерами. То, что вы видите ниже, - это просто вызов функции «jQuery.ready ()» после завершения загрузки страницы.

Вы знаете, как это будет выглядеть сейчас? Благодаря стандартизации реализаций это довольно просто. Есть несколько способов сделать это, и это один из них:

jQuery станет самой популярной библиотекой JavaScript, причем с большим отрывом. На сегодняшний день это самая популярная библиотека по доле рынка, где она присутствует примерно на 79,8% из 10 тысяч популярных веб-сайтов.

Для сравнения, React.js, который широко считается современным стандартом для интерфейсной разработки, React используется на 43,7% из 10 000 самых популярных страниц. Когда дело доходит до внешнего интерфейса, jQuery был последним важным шагом на пути к успеху. Согласованность между браузерами позволяла разработчикам создавать приложения, которые они хотели, но раньше не могли.

2009 год - возможно, самый важный год для экосистемы с момента релиза

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

Одним из таких событий был первый выпуск Node.js, другим - первая ревизия языка - увидел свет ECMAScript 2009 (более известный как ES5).

Первое событие - ECMAScript 2009

ES5 принес много абсолютно необходимых функций. Строгий режим, важные операции с массивами, такие как фильтр, карта и уменьшение (Святая Троица функционального программирования), объект JSON , средства получения и установки свойств и многое другое, выходящее за рамки данной статьи.

Второе событие - рождение Node.js

Создание Node.js сделало JavaScript актуальным языком, потому что среда выполнения позволила нам выполнять сценарии вне браузеров в дополнение к выполнению в браузере. «Интересно, что это была не первая попытка разрешить выполнение JavaScript на сервере. -боковая сторона." Live Wire от Netscape был первым, но поскольку вы, возможно, впервые слышите о нем; это кое-что говорит о популярности решения. Хотя он заслуживает почетного упоминания, мы не будем уделять ему много места.

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

Видите ли, когда вы думаете о написании приложения, которое станет больше, чем ваши стандартные начальные проекты для начинающих, вы рано или поздно столкнетесь с проблемами. Строго типизированные языки, такие как Java или C #, обеспечивают определенный уровень безопасности - они сами отлавливают некоторые ошибки, никоим образом не вовлекая вас, разработчика. Это потому, что они сами гарантируют правильность кода после его запуска.

TypeScript приходит на помощь

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

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

Во-первых, поскольку C # и TypeScript были созданы одним и тем же человеком, у них есть некоторые общие черты. Конечно, не стоит ожидать, что они будут близнецами.

Во-вторых, переход с JavaScript на TypeScript прост - вы можете переносить свою кодовую базу шаг за шагом.

В-третьих, TypeScript интегрируется, например, с React и Vue на интерфейсе без проблем. На бэкэнде все основные библиотеки работают с TypeScript из коробки. Nest.js по умолчанию использует TS; а в Express.js и Fastify есть дополнительные определения типов, которые вы можете установить и забыть.

Если какая-либо библиотека, которая вам нужна, отсутствует в шумихе TypeScript, вы, как правило, все равно сможете использовать ее, наслаждаясь улучшенной поддержкой времени разработки . Пользователи бесплатно вносят определения типов для всех наиболее популярных библиотек , а в худшем случае вы можете написать свои собственные объявления. Другими словами - если вы его используете - для него есть определения типов.

Что ждет JavaScript в будущем?

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

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

Будущее JavaScript не совсем ясно. Судя по всему, от будущего проекта WebAssembly во многом зависит его популярность. Короче говоря, в течение некоторого времени можно компилировать языки, такие как C ++ или Rust, в код, который могут использовать браузеры. Однако его использование имеет некоторые серьезные ограничения, например, вы не можете получить доступ к DOM (структуре страницы), и вы ограничены только относительно новыми браузерами.

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

PS: мы нанимаем разработчиков Node.js. Для всех профессионалов Node.js у нас есть хорошие новости - мы нанимаем. Если вы backend-разработчик, React-разработчик, React Native разработчик или Angular-разработчик, мы ждем вас.

Первоначально опубликовано на https://www.itmagination.com.