2013-10-08
JavaScript – это большой мыльный пузырь.
Это замок из песка.
Такой же, как, скажем, .COM.
Как любой пузырь, JavaScript рано или поздно должен лопнуть.
Конечно, он везде. Он вроде бы стремительно развивается. Но, бьюсь об заклад, настанет момент, когда JavaScript будет сброшен со своего трона, потеряв свой скипетр в виде jQuery.
JavaScript на самом деле никогда не возвращался.
JavaScript стоит не на своих ногах, он сидит на шее у другой технологии. От JavaScript пытались отказаться давным-давно. Если бы JavaScript был по-настоящему хорошим языком, его оценили бы много лет назад, когда он только вошёл в обиход. А я прекрасно помню, какие проклятия я насылал на него 15 лет назад. И не я один. Да, тёмные были времена, но просто попытайтесь вспомнить свою ненависть к JavaScript. До того, как он стал классным.
Кстати, как так получилось, что чудовище стало принцем?
Ответ прост. Однажды появилась на свет такая маленькая библиотека, под названием jQuery. jQuery решила очень многие и самые достающие разработчиков проблемы JavaScript: работу с DOM и вызовы Ajax.
jQuery изначально была разработана, чтобы с JavaScript можно было спокойно работать.
Потом jQuery стала бинтовой повязкой, покрывающей ужасающие шипы JavaScript-кода, к которым вы не хотели прикасаться. Благодаря этой повязке мы наконец могли делать то, что хотели.
Можете со мной не согласиться, но я искренне считаю, что если бы не jQuery, JavaScript никогда не обрёл бы такую популярность.
В чём проблема JavaScript?
Я очень хочу любить JavaScript.
Я знаю, как полезна овсянка, но не могу полюбить её. Я добавлял в неё варенье, мёд, орехи, посыпал её шоколадом и поливал сиропом, но она оставалась овсянкой.
Та же самая петрушка с JavaScript. Я добавлял библиотеки вроде jQuery или Backbone.js. Я использовал CoffeeScript и TypeScript, и притворялся, что вроде бы язык стал вполне ничего. Но факт остаётся фактом: в JavaScript есть что-то такое, принципиально неправильное, что не замаскируешь никакими соусами.
Вы знаете, какая самая популярная книга на Amazon, посвящённая JavaScript? «JavaScript, the Good Parts» (Что есть хорошего в JavaScript). Она же – третья по популярности книга, посвящённая веб-разработке, и четвертая – посвящённая разработке ПО.
Если вы пользуетесь JavaScript, вы должны понять, о чём я говорю. Если никогда не пользовались, введите в гугле «я ненавижу javascript» или «javascript sucks», и тоже поймёте.
Вот несколько выдержек из Интернет-стенаний:
Мои отношения с JavaScript можно описать фразой: «От любви до ненависти один шаг». Можно сказать, я уже шагнул к ненависти.
На JavaScript чертовски сложно писать модульный код. Большинство языков в своём уме дают вам возможность регулировать основу для своего код. С ними можно распихивать код по контейнерам с чёткими API и названиями, чтобы они не пересекались с другими переменными. В Java это пакеты. В Python – модули. У JavaScript ничего этого нет. Здесь приходится использовать анонимную функцию.
Далее, большинство языков позволяют вам отслеживать и управлять зависимостями в модуле. В С/С++ у вас есть инклуды. В Java и Python – импорты. В JavaScript – нет. Node.js даёт возможность загрузить JavaScript из других файлов, но в браузере это реализуется через тяжеловесный синхронный HTTP-запрос через скриптовые тэги. Вы хотите как можно больше упростить этот запрос, но это значительно усложняет ваш код.
HTTP-запрос генерируется и загружается синхронно с каждой строкой, что значительно замедляет время загрузки страницы. Эту ситуацию можно исправить с помощью require.js, который хорошо работает, но не допускает дебаггинга в случае возникновения проблем.
Несмотря на то, что мы всё ещё питаем иллюзии насчёт JavaScript, нам нужно признать, что он не самый великий язык программирования на свете, и что у него есть ряд очень серьёзных недостатков.
Я не предлагаю всем тут же выбросить JavaScript на помойку и построить свой Интернет, без JavaScript.
Я использую JavaScript. Мне приходится это делать, так же, как и вам.
Если вы достаточно умны, вы понимаете, что я могу ошибаться.
Если вы достаточно умны, вы не сожжёте JavaScript на костре, ведь он ещё может воскреснуть и превратиться в универсальный язык программирования, заменив собой все существующие.
Если вы достаточно умны, вы не будете класть все яйца в одну корзину. Несмотря на то, что в настоящий момент радуга и солнце улыбаются JavaScript-разработчикам, вспомните историю BlackBerry. Разработчикам BlackBerry судьба тоже улыбалась не так давно.
Если вы – исключительно JavaScript-разработчик, или вам правда нравится JavaScript, могу вам дать совет. Ваша профессия – это не только технология, которую вы используете.
Если вы хороший разработчик, вы им останетесь, даже если JavaScript исчезнет.
Всё, что есть хорошего в JavaScript – это не JavaScript
Мало кто просыпается утром и говорит: «А пойду-ка я займусь бессмысленными самоистязаниями…» (хотя нет, некоторые, может, так и говорят, но они до сих пор пишут на объектно-ориентированном Perl).
Однако, многие разработчики просыпаются, запускают IDE (ой, извиняюсь, то есть легковесный текстовый редактор с 50 установленными плагинами, которые дают нам возможности IDE, но IDE не являются) и пишут JavaScript-код. Какая ещё для этого может быть причина, кроме уверенности в том, что JavaScript – это здорово?
Всё потому, что всё окружающее JavaScript, его фреймворки, свистелки и пыхтелки, – на самом деле классные.
jQuery, Durandel, Backbone, Angular, Knockout – это чертовски потрясающие вещи.
А ещё потому, что JavaScript везде!
В каждом браузере есть JavaScript-интерпретатор. Каждый ноутбук, ПК, планшет и смартфон воспринимает JavaScript.
Существуют даже серверные технологии на основе JavaScript, например, Node.js.
Итак, JavaScript воспринимается браузером, в нём есть много фишечек для управления DOM, для него написаны тонны библиотек – почему же его не любить?
Я вам скажу, почему его не любить
Потому, что все эти штуковины не имеют никакого отношения к JavaScript.
Замените JavaScript любым языком программирования, и вы ничего не потеряете.
Вы когда-нибудь видели звезду без макияжа? Это зрелище заставляет подумать о том, что из любой женщины можно сделать киноактрису с помощью стилиста и гримёра.
JavaScript – это обычная женщина, загримированная под звезду Голливуда. То, что мы любим в JavaScript – это не язык, а макияж, лёгкий оттенок соблазнительности и стильная одежда.
Но уже сейчас можно заметить, что люди начинают уставать от этого образа и капризности JavaScript.
Все эти фреймворки были очень полезными до тех пор, пока не превратились в цельнометаллическую оболочку. Вы никогда не переживали, какой ещё JavaScript фреймворк вам надо узнать и освоить, чтобы быть современным разработчиком? Я лично многократно.
Я не знаю, какой язык заменит JavaScript. Может быть, это будет Dart. Но когда-нибудь свержение короля точно произойдёт.
Перевод: Люся Ширшова. По материалам SimpleProgrammer.