Канал Nuances of programming опубликовал перевод статьи Flavio Copes «How I stopped worrying and learned to love the JavaScript ecosystem«.
До недавнего времени я не мог без содрагания даже думать о 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. Работают они отлично, необходимости обновлять их нет, если они выполняют свою работу, потому и трогать я их, пожалуй, не буду.
Технологии развиваются и взрослеют, и тогда их начинают больше использовать, чем обсуждать.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]