Java-разработчик Павел Вейник, Enabler в Geomotiv, основатель и преподаватель школы программирования ITStart.by рассказывает о «простом и ленивом правиле», которым руководствуется при выборе технологий для проекта.
Уже больше 10 лет я занимаюсь программированием на Java. В силу природной лени у меня сложились определённые предрассудки в отношении того, какие технологии стоит использовать, а какие нет. Разработчик ведь может освоить любую технологию, но хочется выбрать ту, которая решает большее количество проблем и создаёт меньшее количество проблем. А также ту, которая может быть применена в большем количестве проектов.
Есть простое и очень ленивое правило: брать технологию, которую уже «обругали» серьёзные разработчики.
Как это обычно бывает? Появляется 100500 новых проектиков, неизвестных никому, кроме создателей, которые ими горят. Отношение к новым технологиям всегда положительное, и в масштабе ИТ-индустрии это правильно. Молодые разработчики начинают в этих новых технологиях разбираться: почитали описание на сайте (красочное, конечно) — и тоже загорелись. Пока ты молод и не можешь похвастать широтой кругозора, любая хрень, про которую ты услышал краем уха или где-то прочитал хвалебный отзыв, вызывает вау-эффект. «Круто, сейчас быстренько заюзаю, в моём проекте будет ещё одна крутая технология».
Часто молодые ребята стремятся использовать в проекте как можно больше новых «крутых» технологий. Такое вот техническое самоутверждение: и себе доказать, и людям. А на практике — бессмысленные телодвижения. Нет, ну смысл, конечно, есть — так можно наработать опыт, техническую сметку, чуйку. Но только со временем начинаешь понимать, что есть инструменты, а есть выпендрёж.
Итак, через год от общего астрономического числа новых технологий остаётся штук 100. На каждую из них приходится 50-100 неленивых энтузиастов в разных уголках Земли. Какие-то проекты умирают своей смертью, какие-то — насильственной, какие-то оказываются откровенной дрянью, какие-то поглощаются другими проектами. Выживает, допустим, 20 технологий. У каждой есть по 1 000 приверженцев, перетекших из других технологий. На этом этапе на технологии уже можно обращать внимание.
Когда опытный разработчик попробовал одну из этих 20 технологий и понял, что вот здесь она решает проблемы, здесь — не решает, а здесь — сама их создаёт (и рассказал миру, где именно), это означает, что технология уже дозрела. Серьёзные товарищи обратили на неё внимание, протестировали, не выкинули в мусорный бак, а дали ей шанс. Теперь с ней можно уверенно и стабильно работать. Кроме того, большинство багов и недоработок уже исправлены.
В молодости у меня было совсем другое представление об этом вот всём.
Работал, набивая шишки, с умными дядьками из EPAM (моя первая нормальная работа), которые говорили «Да зачем это тебе? Ой-ёй. Ну ладно, иди развлекайся». Им же тоже интересно, что это за новая хрень, вдруг она и в самом деле хороша? Пусть этот желторотый проверит.
В те времена я не только использовал «ненужные» технологии, но и занимался романтической фигнёй — разрабатывал свои.
Немного предыстории. Я закончил гуманитарную гимназию, в отличие от многих разработчиков, которые осваивали програмирование ещё со школы. Потом подался в программисты, а страсть к языкам осталась. И вот целых десять лет с перерывами, с 2003 года, я писал собственный синтаксический анализатор русского языка. Гигантский проект. Моя тема в аспирантуре, из которой я вышел без кандидатской, потому что забил (степень сейчас никому не нужна и её можно купить за пару тысяч).
Как парень молодой и горячий, я замахнулся на решение проблемы, которой занимаются целые институты. В одиночку и с помощником сделал больше, чем эти самые институты. Минус: технология не принесла плодов, которых я ожидал. Плюс: я получил другие плоды, которых не ожидал. В универе публиковался во всяких журнальчиках и громко звучал с этой темой: мальчик из БГУИРа занимается вот такими вещами. Это звучало как обещание обществу и воспринималось очень круто: «не просто программист, но ещё и вот так умею». Необычная точка приложения программистских навыков, интереснейшая задача, в которую трудно въехать. Меня замечали, пригласили научным консультантом в очень интересный проект в Itransition.
Очень трудно было принять решение наконец-то перестать писать этот анализатор. Да, это был прекрасный опыт своего технологического и даже в какой-то степени наукоёмкого проекта в сложной и интересной области автоматизированного анализа текстов. Но одновременно — яркий пример того, как делать не надо.
Лучше я буду использовать классические инструменты и краем глаза посматривать на «юношей бледных со взором горящим», что они там ещё раскопали. Когда на митапах и конференциях они с восторгом рассказывают об ультрановых технологиях, я втайне исполняюсь здорового скептицизма, но ничем себя не выдаю: пусть они занимают своё эволюционное место «подопытного кролика», тоже нужное и важное.
*Мнение колумнистов может не совпадать с позицией редакции.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.