«JavaScript — это уродливый Франкенштейн»: главное из интервью создателя JSON о проблемах JS и 23-летних сеньорах
На YouTube-канале «Мы обречены» вышло интервью с создателем JSON и автором книг «JavaScript. Сильные стороны» (2008) и «Как работает JavaScript» (2018) Дугласом Крокфордом.
Highload выбрал самое интересное из этого видео. Рассказываем, что Дуглас думает:
- О том, что в современном JavaScript плохо, а что хорошо
- О плохой инженерной культуре в фронтенде
- О проблемах современного IT: выгорании, 23-летних сеньорах и эйджизме
________
Далее со слов Дугласа Крокфорда
О том, что в современном JavaScript плохо, а что хорошо
JavaScript — это уродливый Франкенштейн, и он всегда был таким. JavaScript придумали за десять дней: это слишком короткий срок для разработки языка программирования. С каждым новым обновлением он становится все больше и уродливее.
Но меня это не беспокоит: я всегда рекомендовал использовать лишь хорошие части — они не сильно меняются. А все новые чудовищные возможности я игнорирую.
Главная хорошая часть, это то, что JavaScript — функциональный язык с динамическими объектами.
Когда я преподаю JavaScript, я всегда начинаю с написания функции, которая возвращает функцию. Затем мы проходим через множество итераций. Если вы сможете добиться понимания, как это работает, то у вас уже будет очень мощный инструментарий. Как только вы понимаете, как работают функции, вам становится ненужным все остальное.
Одной из ошибок JavaScript точно являются промисы. Изначально промисы (в других языках) были разработаны для безопасного удаленного программирования и компенсации задержек, но в JS они ничего этого не делают — это просто обработчик параллелизма. Причем очень неэффективный.
Люди просто ставят async на все и делают всю программу async — включая те вещи, которые не являются таковыми. Из-за этого приходится жертвовать производительностью.
Мой совет: используйте библиотеку Parseq. Она позволяет разделять, что в программе будет выполняться параллельно, а что — последовательно, компоновать все и строить элегантные системы без ужасных нагрузок и путаницы.
О плохой инженерной культуре в фронтенде
Некоторые фронтендеры приходят из дизайна. То есть они начинают со стилей CSS, а потом переходят на программирование и JavaScript.
И если у них нет формального образования в области разработки программного обеспечения, то у них может быть хуже с инженерной культурой. И хотя я считаю, что их нужно похвалить за то, что они смогли сами со всем разобраться, им также нужно и помочь.
Большинство самоучек смотрят примеры кода в интернете, но большинство кода в сети — это д**рьмо. Можно ли винить тех, кто потом пишет такой же д**рьмо? Нет. Нужно ли их учить писать чистый и структурированный код? Да.
Я предлагаю посылать таких фронтендеров на конференции, где они смогут добрать недостающие знания. А еще помогать в повседневной работе: ведь все мы в одной лодке.
О проблемах современного IT: выгорании, 23-летних сеньорах и эйджизме
Трудно предсказать, когда что-то будет работать достаточно хорошо, чтобы вы могли ввести это в эксплуатацию или быть уверенным, что это не даст сбой другим системам. Мы до сих пор не знаем, как делать программы хорошо. Разработка ПО — это все еще загадочное искусство. И это проблема. Хорошо бы, если бы мы могли ее решить.
Моя интуиция подсказывает, как это сделать: давайте сохраним всех здоровыми и умными. Если наши мозги работают, у нас есть все шансы на успех.
У программистов считается, что ты настоящий мачо, если не спал всю ночь и писал код. Но мы плохо работаем, когда мы измотаны. Поэтому я считаю, что баланс работы и отдыха очень важен.
Увы, менеджеры так не думают. Они нанимают молодых людей, потому что их можно заставить работать слишком много и слишком долго, и они будут это терпеть. В то время как более зрелые сотрудники скажут: «Эй, у меня есть семья и я хочу провести время с ними».
Мне кажется, в индустрии должно быть больше пожилых еще и потому, что они могут сказать: «Мы делали это 20 лет назад и это была очень плохая идея. Давайте попробуем что-то еще».
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: