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

Думаю, я начинаю слишком утомлять JavaScript.

Я понял это, когда начал встречаться с людьми и представился следующим образом: «Какой язык самый популярный в мире? Французский, английский, испанский или JavaScript »,« Вы когда-нибудь слышали о великой истории JavaScript… »(играет на заднем плане Conan the Barbarian OST), после чего многие из них обычно отвечали мне:« Я знаю Java, это язык программирования »¬¬

В чем разница между Java и Javascript?

О, мой шар, какой сейчас год? и я все еще объясняю это, но мне нравится цитировать один из самых популярных ответов stackoverflow (вероятно, новые поколения не уловят шутку)

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

Другой - язык сценариев для веб-браузеров.

У JavaScript темное прошлое, он был разработан за 10 дней в 1995 году Бренданом Эйхом, одним из отцов Mozilla.

Какой бардак! вы можете подумать, но это действительно отличная работа за такой короткий период времени. Он назывался LiveScript, однако, поскольку к тому времени Java была известна, и пытаясь достучаться до разработчиков, они переименовали ее в JavaScript.

JS был развернут в Nestcape, который позже был передан в Ecma International.

Почему в JavaScript было так много недоброжелателей?

Давай, сядь мне на колени, дитя, я жил во время Браузерной войны.

Вы когда-нибудь пытались заставить работать веб-сайт в Internet Explorer 6? Смешайте боль и абсурд.

Internet Explorer

После того, как Nestcape был запущен, Microsoft решила внедрить свою собственную версию грязным способом, основанным на реверсивной реализации JS Netscape, два месяца спустя Netscape представила JavaScript в Ecma International, но Microsoft решила пойти дальше самостоятельно. Также были различия в HTML и CSS, отсюда два совершенно разных способа сделать одно и то же.

Незрелый язык

Вначале JavaScript был очень медленным и незрелым, ему не хватало многих основных функций, которые были в других языках. Он пытался быть достаточно функциональным, но, к сожалению для нас, из-за давления новых программистов он потерпел неудачу. Вот почему у вас есть несколько функциональных вещей в JavaScript. Да, JavasScript странный (и мощный).

Расцвет веб-браузеров и стандартизация

Конкуренция браузеров оставалась неизменной в течение почти десятилетия, постепенно улучшаясь, и FireFox (Nestcape) завоевал популярность, но только после того, как другие браузеры присоединились к игре как Konqueror, все начало радикально улучшаться.

Apple вместо того, чтобы начинать с cero, решила использовать движок Konqueror (на основе ECMAScript) для Safari. В те дни Google Chrome, а затем Opera решили также следовать рекомендациям Apple, поддерживая этот стандарт.

В ближайшие годы FireFox и Chrome вместе с большинством браузеров начали вытеснять нашего большого врага, установленного по умолчанию на большинстве компьютеров: Internet Explorer.

Microsoft не интересовалась «феноменом Интернета»

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

JavaScript даже в супе

Пользователи не используют настольные компьютеры, как раньше, они действительно не слишком заботятся о локальных приложениях, пользователи 90% времени находятся в Интернете.

Подумайте о любом настольном приложении, почти у каждого из них есть собственная веб-версия, не требующая установки или определенной операционной системы: Office 365, Google Docs, Photoshop Online и т. Д.

Кто может пожаловаться на свободу, совместимость, доступность, а не на установки?

Реальность Интернета настолько мощна, что даже многие из настольных приложений становятся веб-ориентированными: Spotify, Skype, Steam, Atom и т. Д.

И не только для настольных компьютеров, но и для большинства телефонных приложений через Интернет. Проверьте топ в Google Play или Apple Store, они веб-сайты: Facebook, Whatsapp, Messenger и т. Д.

То же самое практически для любого устройства: смарт-тв, носимых устройств, планшетов и т. Д.

Вы кодируете один раз и используете один и тот же код для любого устройства: Electron, Cordova и т. Д.

Такого расширения раньше не удавалось достичь ни одной технологии программирования, как The Web Big Threesome (HTML, CSS и JS). Просто чтобы дать вам количественный пример, в настоящее время большинство репозиториев на Github находятся на JavaScript и растут быстрее, чем любой другой язык программирования.

Что еще нужно завоевать?

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

Например, некоторые из функций, которые еще не доступны, но в разработке: bluetooth, NFC и датчики приближения. Вы можете использовать их в зависимости от устройства, но не изначально (плагины Cordova).

За пределами something.js

Я сука, нет, если честно, меня совсем не волнует JavaScript, я программировал на C ++ и Java (не более болезненно, чем ECMAScript 3.1), но это один из самых универсальных и приятных языки когда-либо создавались.

Любой может открыть браузер и начать писать простое alert('Hello World') в любой системе или устройстве, даже если у него нет доступа в Интернет.

Правда в том, что именно необходимость Интернета сделала JS настолько мощным, и поскольку JS даже сегодня является относительно молодым языком ... он принимает лучшие подходы со стороны других языков (не всегда ¬¬). Так что весьма вероятно, что, по моему скромному мнению, в ближайшие годы веб-технологии победят видеоигры (а не то, что Unity сделала с JS), исследования и настольные компьютеры.

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

['10', '10', '10', '10'].map(parseInt)

Не паникуйте: вместо этого вы можете использовать Number.

Я бы порекомендовал вам использовать обновленное подмножество JavaScript.

JavaScript: The Good Parts 2 (скоро).

Независимо от того, будет ли завтра JS побежден или нет другой, более совершенной и простой технологией с открытым исходным кодом (Elm, может быть вы?), Ни у кого никогда не будет такого количества библиотек и фреймворков, как JavaScript (надеюсь).

Не пропадай

Вы заснули, читая этот рассказ о JavaScript? Что вы думаете о будущем веб-технологий в Black Mirror? Оставьте комментарий, чтобы сообщить нам!

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

Наклейки

★ Теперь у вас могут быть одни из моих самых крутых наклеек для ноутбуков и одежды о веб-разработке, зацените!