Как стать автором
Поиск
Написать публикацию
Обновить

Python в Enterprise-разработке: почему популярность ЯП распространилась и на корпоративный сектор. Часть 1

Время на прочтение12 мин
Количество просмотров6.6K
Всего голосов 57: ↑53 и ↓4+61
Комментарии42

Комментарии 42

А бенчмарки будут ?) Питон как бекенд для блога - ок, для нагрузки 50 RPS тоже пойдет, но дальше уже очень сомнительно

5К RPS на одно ядро с минимальным Фондом Оплаты Труда, Time To Market - это не сомнительно, это ЯП номер 1 в мире.
В других моих статьях есть бенчмарки, в них они уместней https://habr.com/ru/companies/ru_mts/articles/912730/
и тут:
https://habr.com/ru/companies/ru_mts/articles/877628/

Хм, из этих статей можно сделать только один выводы - их автор не умеет читать и не умеет в бенчмарки. Что-то еще есть?

У нас есть сервис который под 1к RPS держит

Сокращение Runtime-ошибок на десятки процентов

А какой-то paper с каким-нибудь research имеется?

Для исследований и прикладных программках для работы с данными отлично.

Но на прод в кровавый энтерпрайз - да боже упаси!

Там потоковая обработка данных без сложной бизнес логики. А что CPU bounded вынесли в сервисы на Go или чём-то компилируемом и быстром

Откуда информация?

Instagram изначально был построен на Django с использованием Python, и несмотря на рост масштабов, Python остается центральным языком для многих компонентов системы:
Обработка данных и аналитика
Машинное обучение
Инфраструктурные инструменты
API и микросервисы

Обработка данных и аналитика

Машинное обучение

Инфраструктурные инструменты

API и микросервисы

В перечисленном нет сложной бизнес логики, требующей гарантий / доказательств от компилятора

Откуда вообще известно есть там сложная бизнес логика или нет?

Можно дальше продолжать отрицать объективну реальность. у меня нет задачи доказать что что то лучше или хуже. я констатирую факты, что на Python бестрее и сильно дешевле создавать продукты способные держать любые нагрузки. бек у Иви с кучей бизнес логики на Python https://highload.ru/spb/2025/abstracts/14755 бек Киона на Python https://habr.com/ru/companies/ru_mts/articles/783792/

Опыт мне подсказывает, что для работы с данными используется очень малая часть возможностей Python, как ЯП, потому что в этой сфере важно знание принципов работы с данными и соответствующих бибилиотек. Нюансы и глубокое понимание языка тут не так важно. С исследованиями скорее та же ситуация, если понимать под этим одноразовые Jupyter ноутбуки или скрипты.

В bloody enterprise всё-таки используется немного другой Python (если это не data, ML или AI. Но и тут есть простор для деятельности) со всеми своими достоинствами и недостатками. Бывают, конечно и исключения, особенно когда опытные разработчики вынуждены писать на новом для них Python после поверхностного изучения основ синтаксиса. Этого часто достаточно, чтобы написанный код работал, но сопровождать его становится больно, динамическая природа языка только ухудшает ситуацию. Обычно в таких случаях формируется мнение, что Python не пригоден ни для чего серъёзного.

В общем, моя основная мысль - в bloody enterprise Python может работать вполне хорошо, просто нужно уметь его приготовить.

Бла бла

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

Как правильно готовить Python для энтерпрайз - боюсь, что ответ не вместить в комментарий или даже статью. Если очень коротко, то ответ общий для всех ЯП:

  • голова на плечах

  • знание ЯП и предметной области

  • правильное использование нужного инструментария (линтеры, статические анализаторы, и прочее)

  • хорошее покрытие тестами (для Python, как и для любого другого динамического ЯП нужно очень хорошее покрытие)

  • опыт

  • ???

Мой опыт говорит о том, что сложную бизнес логику реализовать на Python можно. Так же, при грамотном подходе, можно легко или относительно легко менять её при изменившихся бизнес-требованиях (иногда при кардинально изменившихся).

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

Удачи

Только подальше от моего прода

есть риски оказаться на обочине индустрии.. особенно когда финансисты придут считать эффективность команды и продукта. нет, может там видео чанки раздаются конечно, тут вопросов нет.
Вот используют и чувсвуют себя отлично: бек Иви на Python (Женя Расинский изначально реализовал и отлично работает)
https://highload.ru/spb/2025/abstracts/14755
бек Киона на Python https://habr.com/ru/companies/ru_mts/articles/783792/

Эх, вот бы сделали режим работы интерпретатора только с проверкой типов как в тайпскрипте, цены бы не было. Линтеры это конечно хорошо, но нужен режим именно статической типизации, чтобы разработчики дружно начали типизировать свои проекты.

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

Поинтересуюсь, можно примеры для джанги, когда нужен di?

Вы тесты пишете?

Python лидер по паттернам программировани из коробки - если что, а еще он абсолютнейший лидер по количеству библиотек (в том числе фреймворков).

И откуда такой вывод? И качество библиотек при этом учитывалось или в расчет принимались любые работы джунов?

это факт, поинтересуйтесь и сами увидите

И это большой минус. Как выбрать правильную библиотеку и подход, ведь все их выучить не реально.

Go например намного проще в изучении и намного выгоднее в долгосрочной перспективе для бизнеса. Так же крупный энрепрайс это java или c#. А python это большая вероятность ошибок в рантайме и работа не над логикой, а над устранением тормозов.

Есть критерии выбора которые лежат на поверхности: количество звезд, количество открытых Ишью. Как выбрать подход: человек который выбирает библиотеку знает как это сделать (по умолчанию).

Комментаторы захейтили автора только за то, что он считает Python хорошим ЯП для корпоративной разработки. Это те же не любители 1С? Я сам занимаюсь корп. разработкой на Python и считаю его самым удобным и надёжным языком для решения поставленных задач.
Многие забывают, что во внутренней корп. разработке нет огромного RPS, зато есть сложная бизнесовая логика и здесь лаконичность синтаксиса python подходит лучше всего для создания читаемого и поддерживаемого кода.
Хотя в нашем проекте мы внедряли типизацию, но потом ушли от нее, для нас удобства от динамической перевесило потенциальные проблемы, но у нас и не было этих проблем.

сложная бизнесовая логика

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

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

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

Какие еще языки для корпоративной разработки вы пробовали? В каких у вас есть серьезные компетенции?
Без разнообразного опыта сложно говорить про "хороший" или "плохой" язык. А вот те, у кого есть достаточно разнообразный опыт - обычно относятся к Python с большим сомнением, тем более при использовании динамической типизации.

C#, Rust

Ну и вынужден был PHP, хотя он тоже не пригоден для ответственного сложного продукта

Не отрицаю, что на c# можно сделать ещё хуже, примеры есть

Или вы кого спрашивали?

Что-то я всей сути не понял. Мол прикрутили к языку с динамической типизацией аннотации типов и их проверку через какие-то костыли и язык сразу взлетел. Но зачем всё это, если есть языки со статической типизацией, где всё сразу как надо работает и корректность типов проверяется компилятором, а не отдельной приблудой?

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

Костыли из типов не помогут питон войти в энтерпрайз. Исследования разнородных и кривых данных да несложные прикладные программы, не несущие ответственности - вот и весь питон. Впрочем, прикладные программы штука растяжимая: питон очень богат прикладными библиотеками. Например, чтение Excel с пересчётом формул есть только в c# ( актуальный epplus денег хочет) и в питон (видимо, кто-то проплатил создание библиотеки) и больше нигде. И если очень надо то деваться некуда.

Python-гильдии в МТС

На боссов там поди ходите в данжи?)))

да не, общественно-полезная должность..

А у вас в МТС бек для ЛК и мобильного приложения тоже на питоне ? Почему оно грузится по 3-5 секунд ? Независимо от провайдера)

Скажу за бек Киона. Отвечаем быстрее чем за 300мс

https://youtu.be/qJCBo7k92y0?si=l6AjgfKz1bsn8cbG вот тут интервью с СТО МТС Банка, может там контакты есть в описании.. Еще в комментарии можно написать, я попрошу Егора(ведущий) пингануть Диму(CTO МТС Банка) - призовем к ответу

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

Именно!

Основной критерий, как упомянул автор статьи, Tume To Market.

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

Поэтому я согласен с мнением: для широкотиражируемого и популярного продукта Python неоптимальный выбор.

Хотя для ряда задач- он очень хорош. Сам использую для автоматизации и рутинных разовых задач.

Нет конечно. Смысл: если нужно обрабатывать больше 1000 RPS на ядро: добавь 5 подов в кубере по 200р в месяц, чем платить за медленную разработку в месяц 500 000р джависту, время жизни кода 5 лет: тут расчеты, с ссылками на исследования: https://habr.com/ru/companies/ru_mts/articles/912730/

Вы такими словами и действиями делаете антирекламу МТС как работодателя, причем хорошую. Уже сомневаюсь работают ли там специалисты, а не свидетели курсов "Питон за 5 минут"?

Про LLM тоже нельзя писать?

Наша работа не в сферическом вакууме, она тесно связана с бизнесом и с цифрами. Расчеты они есть всегда и против фактов сложно идти. Кто то выбирает для API Java или Go? ок.. но это будет сильно дороже и медленней чем на Python. Если бизнесу ок, то ок.

Да и в каждой статье мысль, что каждый инструмент хорош в своем предназначении. Видео чанки раздавать на Python плохо.

Питон это разработка быстро, но дендрофекальным способом. Time to market с пропуском половины corner cases. А если надо что-то надёжное, то тестирование и устранение багов на проде съест весь профит.

Правда, исследовании и ad-hoc аналитике это неважно.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий