Как я перестал беспокоиться и полюбил JavaScript. Часть 1

Как я перестал беспокоиться и полюбил JavaScript. Часть 1

Nuances of programming

Перевод статьи Flavio Copes: How I stopped worrying and learned to love the JavaScript ecosystem

Это я тону в море JavaScript.

До недавнего времени я не мог без содрагания даже думать о JavaScript. JavaScript Fatigue — пресыщенность JavaScript-ом — так зовется эта болезнь, которая мучила меня целые годы и лекарства от которой мне никак не удавалось найти.

Сегодня я обожаю JavaScript и его экосистему.

Как же так получилось?


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

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

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

Я учу JavaScript с момента его появления (да, я очень древний). А боли меньше не становится. — Tim Tate

Я серьезно погрузился в JavaScript и Node.js в 2012 году. Сколько же всего изменилось в языке с внедрением стандарта ES6. В последний раз изменения подобного масштаба произошли в 2009 году, когда была представлена версия ES5. Стандарт ES6 произвел революцию. Поменялось буквально всё. Планировалась масштабная модернизация JavaScript, каждый день я узнавал о новых функциях, которые могли бы попасть в эту спецификацию, Но трудно было уследить за всеми новшествами. А пропустить такое событие не хотелось, тем более весь Twitter только о них и говорил.

var упокоился с миром.

function пропел свою лебединую песню.

Столько времени было потрачено, чтобы так просто взять и понять прототипное наследование. А где оно сейчас? Исчезло, скрытое под 🌈 ковром классов.

И это только начало. 

Сборка всего и вся

Сборка (building) — одно из главных революционных решений.

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

Когда вражеские ряды пополнились библиотекой Babel, я еще ожесточеннее пустился в бой, но в конце ослабил натиск, поднял белый флаг и перешел на сторону некогда бывшего врага.

Я понял, что Babel — это только на первый взгляд веселая библиотека, которая просто знакомит вас с технологиями будущего. И кажется, что как только они станут новым стандартом, начнут поддерживаться всеми браузерами, тогда Вавилон (Babel) рухнет. Но нет, Вавилон здесь, чтобы остаться с нами навсегда. Ну хорошо, если не всегда, то в обозримом будущем он точно будет жить и процветать.

Когда ES2017 окончательно обоснуется в наших браузерах, Babel станет работать с ES2018, ES2019 и так далее. Это неизбежно. Надо принять это как данность, и пусть отныне Babel станет нашим другом.

Используйте простейшие решения

Инструментарий — одна из самых сложных частей JavaScript в наши дни. Да, вы можете прочитать все о Webpack, но когда вы только начинаете, забудьте все прочитанное и используйте готовые решения, такие как  create-react-app , the React Boilerplate , который скрывает всё лишнее и позволяет сосредоточиться на коде.

Не начинайте с настройки окружения, учитесь с помощью Glitch — самого простого способа быстро погрузиться в современный JavaScript.

Больше никаких крупных релизовES6 был настолько монструозным, что комитет ECMAScript решил сбавить обороты и делать следующие релиз поменьше. Вот почему ES6 еще носит название ES2015, и отныне все релизы будут выходить раз в год. Так будет легче перейти на новый стандарт, который не претерпит значительных изменений из-за ограничений по времени (но изменения всё равно неизбежны, так что сдавайтесь). К тому же такие небольшие релизы более предсказуемы. 

Игнорируйте шум

Если вы похожи на меня, ты в Twitter вы подписаны на множество IT-гуру. Некоторые пользуются авторитетом и задают тренды. Они начинают предлагают переходить на технологию X, все остальные это подхватывают.

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

У них могут быть свои причины так эскпериментировать. А у вас их нет. Так что не дайте новой блестящей игрушке ослепить вас, не попадайте в эту ловушку, лучше сосредоточьтесь на своей работе.

Новый фреймворк появляется каждую неделю? Да нет же

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

Но следует отметить,что всё по-настоящему хорошее меняются не так уж и сильно.

Возраст React - 5 лет.

Возраст Vue - 4 года

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

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

Всё течет, всё меняется. Примите этот факт

Да, у всего есть жизненный цикл

Несколько лет назад jQuery использовался повсюду, теперь его редко встретишь в новых проектах.

В 2013 году Backbone.js был вездесущим. Теперь его днем с огнем не сыщешь.

CoffeeScript стерт с лица земли.

Ember.js, Angular.js и Meteor взлетели и оставались на пике своей популярности в течение нескольких лет, теперь же все говорят о React, Vue и Angular (не путать с Angular.js).

Как правило, каждый жизненный цикл этих крупных фреймворков длится немного. У меня все еще достаточно приложений на Ember.js. Работают они отлично, необходимости обновлять их нет, если они выполняют свою работу, потому и трогать я их, пожалуй, не буду.

Технологии развиваются и взрослеют, и тогда их начинают больше использовать, чем обсуждать.

Конец первой части. To be continued soon.

Перевела Журавлева Дарья.