Великое Колесо IT-Сансары

Andrey Platov
The Platform
Published in
8 min readMay 24, 2020

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

Если ты работаешь в Google, то вряд ли тебя запишут в низшую касту, даже если на самом деле ты полный идиот, а такие бывают и в Google — ошибки случаются в любой системе. С другой стороны, если ты пишешь на Scala, то вряд ли тебя будут встречать как представителя низшей касты, к которой ты безусловно можешь принадлежать.

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

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

Строго говоря он будет прав: по сравнению с чистотой (pureness) его Haskell кода, ваш определенно грязный, можно сказать кровавый. Кроме того, отсутстие сайд-эффектов в чистом коде минимизирует его пользу для реального мира (читай мира наживы и энтерпрайза), и уводит Хаскелиста в нирвану абстракций, в которой настоящий Хаскелист пребывает давно и постоянно.

Единственный шанс не оказаться в низшей касте — это писать на Haskell. Вернее так: если вы будете писать на Хаскеле какие то бесполезные вещи (а полезные вещи на Хаскеле пишут редко), то у вас железобетонный шанс рано или поздно оказаться в роли опущенного члена элитарного клуба. Поскольку на каждого пишущего Хаскелиста найдется другой Хаскелист с функтором, который вставит его в вашу монаду и малопонятно, но очень убедительно объяснит вам и остальным членам, почему ваше место у параши.

На длинной дистанции среди элиты не остается ни одной целой монады, и поэтому, если вы желаете пойти по элитарному пути, то тут есть единственная стратегия — как можно меньше программировать (или стараться никому это не показывать) и отращивать функтор, максимально скрывая свои монады от посторонних глаз.

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

Тем самым, эти перцы закольцовывают Великое Колесо IT-Сансары, и благодаря им все крутится.

Великое Колесо IT-Сансары

Великое Колесо IT-Сансары — это движение масс программистов и капитала от технологии к технологии, и из компании в компанию (из индустрии в индустрию).

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

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

Хоп, и в этом сезоне все деплоят в Kubernetes, и даже чуваки со статическим сайтом интересуются, а не стоит ли им увеличить сиськи.

Человеку свойственно стадное поведение. Программисты не исключение, а такие же люди, и ведутся на моду. В первую очередь на моду. Возьмите любую технологию или язык программирования. Ruby довольно показателен, но все что написано ниже одинаково верно для всех языков и технологий.

Десять лет про Ruby можно сказать никто не знал, кроме небольшого количества японцев. Если бы до 2007 года вы сказали “в тусовке” что пишете на Ruby —вы бы были получили лейбл экспериментатора или просто странного чувака, но никак не модного программиста. Ну это было бы примерно как сейчас выйти на улицу в пижаме.

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

Но тут, опаньки, вторая половина 2000-х, DHH, Ruby on Rails, мода. Язык #1 для изучения в 2007, все говорят только о Ruby, все модные стартапы запускаются на Rails и хайрят исключительно Ruby программистов, все хотят программировать на Ruby в рабочее время, а в нерабочее изучают потому что… потому что что? Але, родные, где вы были десять лет?

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

Заметим, что сами технологии, что старые, что новые особо не меняются, а модные штуки, как правило, и с высоты птичьего полета не имеют никаких преимуществ по сравнению с немодными. Более того, модное — не значит новое. Все эти вещи, до того как стать модными существовали много лет и их мало кто замечал пока они волею судеб не стали модными.

Можете проверить сами: мода на язык программирования приходит примерно через 10 лет после первого релиза. По этой формуле, C++ должен был стать модным в 1995, Java должна была стать модной в 2005. Ruby — в 2005. C# — 2010, Clojure — 2017, Go — 2019. Rust — 2020. TypeScript — 2022.

Очень интересен Python. По формуле, он должен был стать модным в 2000. И так и было (многие компоненты поисковика Google были в то время написаны на Python). Но, мы видим какую то новую волну популярности языка, во многом связанную с Machine Learning, но одним Machine Learning необъяснимую.

Идем в википедию и смотрим: Python 3, новая версия языка, несовместимая с 2.x. Читай: новый язык. По формуле он должен стать модным в 2018. 👍

Вы можете сказать, что мол это не мода, а технологическая необходимость, ну типа мы тут делаем микросервисы, нам важен startup time, Kubernetes, docker, и мы не можем жить без Go. Конечно, в рациональном мире выбор языка должен быть обоснован.

Но мир иррационален. Он движется циклами моды, а не рациональным мышлением. В IT так же как на бирже. Бывает, что по всем фундаментальным понятиям какая нибудь технология должна стоить не дороже моих старых носков, но ее акции на хайпе раскупаются как горячие пирожки в голодную зиму.

При этом любой “аналитик” задним числом легко объяснит вам почему данная технология прет на хайпе (потому что типа люди пишут микросервисы, а лучше Go нет ничего для написания микросервисов). Это вполне разумное объяснение, хоть и спорное: никто вам не мешает делать замечательные микросервисы например на Java, так же как я не понимаю зачем вам, например, Kubernetes если вы сидите на AWS и не собираетесь с него съезжать даже в страшном сне.

Правда в том, что моду на любую технологию можно разумно “объяснить”. Главный вопрос в том, вызвал ли спрос на микросервисы рост популярности Go, или Go просто моден в данном сезоне, и люди объясняют это ростом разработок микросервисов? Что с самими микросервисами? Все стали переходить на микросервисную архитектуру потому что жить без нее могли? (вопрос: кто вам мешал делать это раньше когда слова Microservices не было). Или мода на микросервисы двигает людей что то делать в этом направлении.

Я не сомневаюсь что мода первична и только она двигает массы.

Разница между модой и реальными инновациями огромна. В XXI веке пока случилась только одна инновация в языках программирования — это Rust. Все остальное в том или ином виде существует или существовало, а именно:

  • статически типизированные языки со сборкой мусора (для программистов),
  • статически типизированные языки без сборки мусора (для суровых специализированных программистов),
  • динамически типизированные языки со сборкой мусора (для всех, кто программирует), и
  • динамически типизированные языки без сборки мусора (для обучения детей программированию и 1С-программистов).

“Функциональные” языки выделять в отдельную категорию я не вижу смысла, они прекрасно попадают в эти четыре, например Clojure — динамическая типизация, сборка мусора.

Разница между языками внутри этих категорий безусловно есть, и для отдельно взятого “Хаскеллиста” она может быть огромной, но эта разница не объясняет мощь миграционных процессов типа Java->Go. Десятилетний цикл моды объясняет их прекрасно.

Смотрим как нам объяснят популярность Rust в этом, 2020 году. Я думаю это будет WebAssembly — типа JavaScript-народ хочет писать быстрый код (остальных мест применения не достаточно для массового использования языка), тем более что на днях вышел релиз Deno 1.0. Популярность Rust сейчас стремительно вырастет, но дело не в возможностях Rust. И не в том что всем вдруг понадобится “ускорять” свои JavaScript приложения. Просто время пришло.

Это все про моду

Все в массовом IT — это про моду. Это не про действительно крутые технологии, не про изменить мир, не про заработать много денег. Люди хотят пользовать модные технологии и работать в модных местах.

Самая восхищающая меня модная история это финтех. Ну то есть представьте банковскую индустрию и банковский софт. Вот уж с чем у людей самые мрачные ассоциации, и заниматься банковским софтом — это примерно днище в абсолютной классификации, и зачастую то, что делают упомянутые в первой части Хаскелисты в рабочее время.

Простите меня люди, делающие охуительные вещи в банках. Я, сейчас, ранее и далее про общее восприятие.

Ну то есть у вас куча легаси. Никто в здравом уме не будет без жизненной необходимости трогать софт от которого зависит больше чем все, и в первую очередь деньги — это вам не фоточки пользователей угандошить.

У вас безумные требования к безопасности и надежности (по крайней мере они должны быть), что исключает любые возможности с утра сказать смотрите какую фичу я ночью захуярил.

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

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

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

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

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

В общем история с финтехами и индустриями примерно такая же как с технологиями. Сегодня про тебя никто не знает, завтра ты модный и к тебе валят, послезавтра ты унылое энтерпрайизное гавно, независимо от твоих успехов, и реального положения дел.

Есть конечно вечные ценности: например разработка операционных систем, компиляторов, или разработка игр. То, что уважается в любое время. Как и в одежде, есть нестареющая классика, типа “маленького черного платья”, но на всех платье не натянешь, особенно на жирных мужиков, которых не мало среди программистов.

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

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

В то же время эти мужики ведут себя точно так же гоняясь за Go, который стал моднее чем Java в новом сезоне, присматриваются к Rust или изучают Clojure в качестве дорогого аксессуара, чтобы прийти на собеседование по моде и с элегантной фишечкой. Ну и конечно их интересуют компании с модными пацанами, и от ставших немодными всегда тянет к модным.

Всем чмоки в этом чатике, пойду заполишу свою Гошечку 💅, и зашлю девопсикам, пакасики 💞😘

Об авторе

Автор данного текста — основатель open source проекта с незамысловатым названием “Платформа”, в который он ищет соратников. Цели у проекта довольно обширны, и пока точно не сформулированы, но что-то уже можно прочитать тут. Если вдруг вам зайдет — подключайтесь.

--

--