Эпоха красивого кода прошла. Пришло время быдлокода

0f1ccaa329dbad5b5b15d553dee483c8.jpg

Я работаю программистом 12 лет. Последние 2 года в мобильной разработке, а до этого php со всей своей экосистемой, фронт-энд — по мере необходимости.

И проблема конфликта между красотой кода и быстротой реализации новых фич давно меня занимала. Раньше были разговоры и даже холивары на эту тему. Однако сегодня поднимать этот вопрос уже моветон.

И вот конкретный пример.

Для мобильной разработки пользуюсь таким замечательным продуктом как Android Studio. И решил давеча отключить ненужные плагины в настройках. Снял галочки напротив плагинов которые для меня не нужны, IDE не предупредила ни о каких возможных проблемах.

Перезапустил IDE, и вуаля, среда сломалась:

«Missing essential plugins… Please reinstall from scratch.»

Думаю, «весело». Лезу в гугл, Stackoverflow уже всё знает ;-) и «советует» удалить файлик disabled_plugins.txt из папки конфигурации.

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

Тоже фигушки. Та же ошибка. Я уже весь файл оставил пустым — действительно, «зачем удалять сам конфиг файл?» — подумал я как программист, если он пуст…

Ошибка не пропала. Только полное удаление файла решило проблему.

К чему я это всё?

А к тому, что Android Studio не курсовая работа студента. Это IDE для разработчиков от уважаемой компании.

Как? Скажите мне, как можно было допустить такой код в продакшн?

Плохая квалификация разработчика должна перекрываться хорошей квалификацией кодревьюера.

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

Код прошел все эти стадии  и такой, простите, детский косяк, попал в такой серьезный продукт.

Выводы.

Большие деньги в сфере IT порождают большую конкуренцию между продуктами и это ставит развитие продукта в больший приоритет чем качество самого продукта.

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

В добавок HR менеджеры так же стремятся завербовать новых, именно новых, потому что от старых они не получают дивидендов разработчиков, которые, вследствие массовости, существенно потеряли в качестве.

В итоге неквалифицированные разработчики быстро создают и быстро развивают программные продукты.

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

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

А баги — что баги? — ну есть стековерфлоу. Я же за 5 минут нашел как пофиксить ошибку.

Производительность, скажите вы, — кто о ней думает в эпоху 32ГБ ОЗУ и процессоров 12 поколения?

Словом, качество кода ушло на последнее место когда программирование стало на 120% коммерческим делом на котором делаются главные состояния.

И вопрос, как быть эстетам, которые хотят получать еще и эстетическое удовольствие от программирования?

© Habrahabr.ru