Posted on Tue 11 March 2014

Meteor: Too Easy to Be Real

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

Meteor splash image

Meteor - прост для новичков

В официальном блоге Meteor уже есть статья от Alice Yu о том как Meteor помогает новичкам в веб-разработке и программировании сделать первые шаги осознанными, простыми и тем не менее эффективными.

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

К сожалению в профессиональных кругах программистов не все так просто. Не все части сообщества приняли Meteor с распростертыми объятиями. Особенно это хорошо видно на популярном сайте Hacker News, где Meteor запустился в первые в 2012 году и до сих пор считается одним из самых успешных YC запусков в истории сайта, набрав более 1300 очков (что по меркам 2012 года было неимоверно много).

"Too easy to be real"

Критика нужна и полезна, но иногда она доходит до абсурда. В этом посте мы рассмотрим критику в отношении одного из самого большего плюса Meteor: простота в освоении.

This is the future of hackathons, free code days and weekend dev marathons. Yet I'm not sure how soon any serious company will trust it with serious applications. I'm not putting it down, this is incredible progress, the money (x millions in funding) behind it will give it a good amount of momentum, but it just seems a bit too easy, a bit too gimmicky to be taken seriously. I hope I'm wrong.

-- источник: Hacker News comment by daulex

Пользователь Hacker News daulex видит Meteor как будущее для Hackathon'ов, проектов на выходных, но не как главную технологию для серьезной компании и серьезного приложения. Потому что Meteor слишком легок, слишком подозрительно легок, чтобы воспринимать его всерьез.

Другой комментарий от более популярного человека - Азата Марданова:

Азат на полном серьезе говорит, что Meteor слишком легок и делает мозги разработчиков слабыми. Хотя позиция Азата не до конца понятна, вот здесь в одном из своих постов он говорит:

Meteor is more of a platform with its own packages and services. Its very opinionated and has a steep learning curve.

"Steep learning curve" - крутая кривая обучения.

Это лишь пара примеров, но если поискать получше, то станет понятно - большинство согласно, что Meteor очень прост в освоении и использовании. Не все согласны на том, хорошо это или плохо.

Религия не позволяет

Самый распространенный пример нелюбви - это религиозная злость. Нелюбить Meteor можно по многим религиозным причинам: JavaScript, web vs native, поддержка NoSQL DBs, реактивность... Зацепиться можно за любую часть. Нелюбить простоту решений Meteor можно хотя бы потому что "в моем любимом фреймворке X это делается не так, там нужно сделать Y, а вы сделали Z" приправленное "и вообще, у вас все как-то сликом просто, настоящие мужики просто так не обходятся".

Ни себе, ни людям

Другой распространенный вид ненависти - это зависть. Зависть, что пару лет назад, все не было так просто. "Мы в твое время работали за копейки на заводах, а ты бездельничаешь целыми днями". Почему эти люди не могут порадоваться за прогресс человечества и за всех новых людей, у которых будет больший выбор инструментов, стилей разработки и больше простых для работы решений - мне пока не понятно.

Есть, что терять

В мире веб-разработки тренды меняются очень часто и планка качества сайтов и приложений поднимается все выше и выше. Это произошло и в мире веб-страничек - они стали толще, интерактивнее и быстрее, спасибо высоким стандартам поставленным такими сайтами как Facebook, Twitter, Quora.

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

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

Диванная аналитика

Для каждой технологии найдется человек, который скажет: "А что в этом такого? Я и сам такое сделаю на раз-два, если захочу и вообще ничего выдающегося!". Простота в использовании и доступность создает ложную иллюзию, что и построить такую систему также легко как и ею пользоваться.

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

Иногда люди и вовсе не понимают всего масштаба системы, не вдаваясь в подробности они бросаются словами и просто остаются со своим невежеством. (Это хорошо видно в этой ветке обсуждений на Hacker News, где обсуждающие могут в корне не понимают о чем идет речь.)

Прагматичный скептицизм

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

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

"Если все будет так просто, люди перестанут думать"

Это очень популярный аргумент, который существует с момента появления программирования. Когда был придуман Assembly, "настоящим программированием" признавалось только программирование бинарным кодом. Позже, с появлением Fortran, история повторилась. История повторяется с каждым новым шагом.

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

Используете ли вы языки с ручной управлением памяти (без сборки мусора или автоматического подсчета ссылок) для написания своих веб-приложений? Сделали ли сборка мусора, динамическая типизация и ООП-абстракции всех слишком глупыми?

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

© Slava Kim. Built using Pelican. Theme by Giulio Fidente on github. .