Всем привет! Если вам хочется попрокрастинировать этим солнечным утром по московскому времени - вот какую тему хочу вбросить.
На вопрос "какой язык/фреймворк выбрать для монолитного REST API бэкенда нового проекта", который мне задают регулярно, я сам всегда отвечаю - те, где у тебя/твоей команды уже есть максимум компетенций. А недавно так получилось, что я этот вопрос задал себе. И поняв, что владею в достаточной степени несколькими стеками, и овладеваю новыми тоже достаточно быстро и эффективно - на верхние позиции выходят критерии типа:
- зрелость и беспроблемность (вероятность словить какие-то неразрешимые глюки или ограничения в языке/фреймворке, см. Flutter)
- доступность и стоимость инженеров (гоферов пылесосят с рынка)
- перспективы в ближайшие 5 лет (точно не Perl)
- экосистема библиотек/пакетов (leftpad)
- аффилированность с FAANG и другим крупняком (Go всегда будет языком для Google, а потом для остальных, Rust явно сильно затачивается под Mozilla Foundation)
И как-то получилось, что на первом месте незаметно оказались PHP и Symfony (либо Slim для менее развесистых проектов).
На второе аккуратно ставлю Kotlin/Spring с мыслью, что нехватку нативных библиотек всегда можно восполнить Java-наследием, и опасением конкурировать за инженеров с мобильной разработкой.
На третье - Python/Django, но уже с мыслью о конкуренции с рынком ML/data analysis.
Не готов рассматривать Java (рынок рабочей силы в основном состоит из инженеров кровавого энтерпрайза, которые плохо приспосабливаются к режиму стартапа), Go (людей мало и они дорогие, язык не заточен под REST-парадигму и большие монолиты), Typescript (там наведённый ад от экосистемы фронтенда), Ruby (мало людей, мало новых проектов, много легаси), .NET (сильная привязка к экосистеме Windows).
Какие ещё идеи, или поспорьте со мной, может быть?
Конкуренцию python web разработчиков с ML/DA можно не рассматривать, абсолютно разные области и навыки