Привет! Материалами для статьи с вами поделились наши опытные веб-разработчики Анатолий Буренков и Павел Лысов. Они поучаствовали в беседе о том, какие тренды есть на рынке Python, для каких задач язык подойдет идеально, а когда клиентам лучше выбрать альтернативу.
За последние годы Python стал королем программирования. До сих пор не все разработчики воспринимают этот язык всерьез (привет джавистам :), но уже ни для кого не секрет, что Python востребован на мировом рынке, а тысячи программистов лихорадочно учатся работе с ним.
Garpix еще в 2015 году оценил Python и начал писать код на Django и Flask. Тогда бума разработчиков в этом сегменте ещё не было, а сам язык был в разы медленнее.
Спустя 8 лет Python входит в ТОП-3 языков для веб-разработки по всему миру, а мы выполнили десятки заказов для клиентов и завоевали звание digital-интегратора №1 на Python в Рейтинге Рунета. Итак, давайте посмотрим на разработку на Python свежими глазами!
Python — высокоуровневый язык программирования с открытым исходным кодом, который подходит для решения широкого круга задач. С его помощью создаются сайты для e-commerce, веб-приложения, анализируются медицинские данные и проводятся научные исследования. Благодаря Python можно быстро и с меньшими трудностями выйти на рынок с цифровым продуктом.
Большой плюс, на наш взгляд — общая зрелость системы. Еще в 2015 году Python был зрелым языком. Его платформы Django и Flask позволяли программистам быстро погрузиться в работу.
Сделав ставку на Python, Garpix ни разу не пожалел :). У нас был выбор между тем, чтобы продолжать писать на PHP или сфокусироваться на Python. Сравнив инструменты языков, мы посчитали, что второй путь перспективнее, и не прогадали. Скоро простой и интуитивный синтаксис этого языка сделал его одним из самых популярных языков программирования наравне с Java.
Конечно, низкий порог вхождения в язык, доступ к открытым библиотекам и обучающим курсам размывает рынок. За счет простоты языка и массового выхода курсов по Python усилился разброс по уровню программистов. Клиентам могут попасться и сильные разработчики, и максимально неопытные. Это не отменяет ценности языка и его возможностей для бизнеса и науки. Сейчас расскажем обо всём подробнее.
1. Широкая направленность, универсальность языка.
Python применим как в machine learning, так в веб-разработке и даже на базовом уровне в gamedev (можно обучать геймдеву школьников, чтобы легче их замотивировать). Также этот язык подходит для создания авторских технических продуктов и популярен в научной среде.
2. Простота и лаконичность синтаксиса.
Он легко читается. Программисты могут быстрее писать код, это сокращает время разработки и уменьшает конечную стоимость проекта для клиента.
3. Мультиплатформенность.
Python работает на разных операционных системах, включая Windows, Mac и Linux. Благодаря этому ниже стоимость разработки решений и выше удобство их использования.
4. Активное комьюнити.
У Python большое сообщество разработчиков. Они создают множество открытых библиотек, делятся решениями и советами. Это еще одна из причин, почему программисты могут быстрее войти в разработку на Python, научиться работе с языком, получить экспертную помощь, если попадутся сложные задачи.
Как сказал наш разработчик Павел, “Python — как морской пляж. Сначала ты легко в него погружаешься, но чем дальше идешь, тем все глубже и глубже. Это емкий язык”.
5. Python обрабатывает большие объемы данных.
Для оптимизации производительности приложений разработаны десятки инструментов. Возможность работы с big data уже оценили крупные ученые — астрофизики и биологи.
Всё, что мы перечислили, создает преимущества для бизнеса. Почему стартапы выбирают Python: он помогает быстрее выходить на рынок, разработчики обходятся дешевле (в сравнении с тем же Java), на рынке их много. Не нужно изобретать велосипед: в доступе весь технологический инструментарий и открытые библиотеки. Это сокращает время разработки, экономит деньги бизнеса.
Для разворота на проде есть opensource и проверенные практики. Можно оперативно собрать первую версию проекта на Django, выйти на рынок и работать с клиентами. Идеально! Остается удачно выбрать разработчиков. :)
Python хорош для клиентов из e-commerce. С его помощью они быстро запускают сайты и веб-приложения, проверяют гипотезы. В случае со сложными интеграциями и технологиями мы помогаем клиентам правильно реализовать решение. (Там, где это критично, можем написать кусок решения на другом языке. У нас бывали такие кейсы.)
Кроме заказчиков из екома, к нам стали часто обращаться medtech сервисы. Обращения медицинских сервисов нас пока интригуют. “Для меня это пока секрет, — поделился наш разработчик Анатолий Буренков. — Клиенты стали чаще обращаться за крупным медицинским ПО на Python. Может, это только у нас так, и мы делаем ложные выводы?”. Для бизнеса отдельным плюсом Python выступает простота техподдержки и наличие специалистов разного технического уровня на рынке. Если вы передумаете работать с командой, ее несложно заменить. Главное — проверить портфолио, CV разработчиков и рейтинг будущих подрядчиков, чтобы не наткнуться на школьников в Python :)
Не стоит выбирать этот язык, если у вас крупный highload проект с миллионами пользователей. В этом случае вообще мало что подходит. :) Python неудобен для большого корпоративного приложения, допустим, для банка. Ему важна надежность и скорость при проведении миллионов транзакций, строгая типизированность. Язык должен компилироваться, быстро считать математику.
Пример: когда нужно обработать 5000 запросов в секунду, возможностей Python достаточно. Если миллионы, ни одного подобного языка не хватит.
Для крупного энтерпрайза Python может не подойти: на рынке есть языки Java и Sharp, гораздо лучше заточенные для таких задач. А условному Instagram, YouTube или другой соцсети, даже крупной, это актуально. Используя Python, она быстро выйдет на рынок и обгонит конкурентов.
Python пока не годится для разработки игр — максимум, для казуалок без больших расчетов физики. Для геймдева он ещё слишком медленный. Также он не очень популярен при разработке мобильных приложений.
Сейчас мы используем в работе все платформы Python. Основная платформа — Django. Был момент, когда хотели удариться в микросервисную архитектуру и писать на Flask, но поняли, что это, в среднем, выходит клиентам дороже. Пока разработка качественных микросервисов обходится затратнее, классические монолиты выигрывают. Основные кейсы у нас всё ещё на Django.
Мы каждый день занимаемся разработкой проектов на Python, так что приведем в пример лишь некоторые проекты. Сложно выделить один, когда это твой ведущий стек, и ты стабильно с ним работаешь.
Например, у нас есть проект Garpix Load System — программное обеспечение для загрузки контейнеров, грузовиков, палет и других транспортных средств. При создании решения мы написали часть кода на C++. Это позволило обойти проблемные места в ходе разработки.
На языке Python мы написали удобный сайт для сотрудников и клиентов Владивостокского морского торгового порта. Команда оцифровала все бизнес-процессы порта и интегрировала сайт с 1С, веб-сервисом ЦБ РФ и сервисом Федеральной таможенной службы. А для профессионального хоккейного клуба “Адмирал” мы запустили сайт на Django буквально за 2 месяца. Теперь информация о клубе, командах, игроках, билетах и турнирах доступна пользователям в один клик.
Главный тренд: Слабо типизированные языки идут в типизацию
В последнее время на Python добавляются типы, язык становится типизированным. Качество кода растет. Нравится, что это делается постепенно. Тренд остается стабильным на протяжении восьми обновлений языка.
В последних версиях сильно переписывают внутрянку Python, делают его быстрее. Разработчики исправляют то, за что критиковали язык — улучшают его скорость. Десятки процентов прироста скорости за полгода!
В Django появляется синхронность
Python становится синхронным, и даже такой монолит, как Django, тоже становится синхронным. Программисты много работают в этом направлении.
Python остается лидером в сфере machine learning
Язык сохраняет востребованность на рынке machine learning. Python правит на этом рынке, поскольку имеет богатый инструментарий и низкий порог входа для разработчиков. Это продолжающийся тренд.
На рынке много обучающих программ по Python
Из-за популярности языка курсы по нему продаются в любой школе программирования. Наша Цифровая Академия — не исключение, ученики с нуля учатся писать сайты на Python. Этому языку активно обучают, в отличие от многих маргинальных языков. Обратная сторона тренда — засилье питонистов на рынке и разный уровень качества их работы.
Микросервисы для highload проектов стали популярнее
В этой сфере используется либо смешанная архитектура (микросервисы и монолит) либо полностью микросервисы (например, они пилятся на Flask). Микросервисы — удачное решение для бизнеса, у которого много команд. Например, в компании трудятся 10 команд программистов.
Микросервисы позволяют решить проблему коммуникации на проектах через техническую реализацию. Если на проекте, даже крупном, трудятся три человека, им микросервисы точно не нужны. Это овер-инжиниринг, где простые вещи излишне усложняются.
FastApi будет востребованным на рынке
Данный фреймворк уже показал себя, как быстрый, легковесный в плане кода и онбординга и асинхронный. У него качественная документация, создана сопутствующая архитектура. Так как фреймворк новый, пока библиотек не очень много, но они активно развиваются.
Спасибо нашим разработчикам за обстоятельный рассказ о том, что происходит на рынке Python. Пусть этот материал будет вам полезен.
Если говорить о ближайшем будущем, мы считаем, что работы по ускорению Python приведут к тому, что его главный минус — относительно невысокая скорость — скоро отпадет. Язык станет строго типизированным и заслужит больше доверия, как инструмент для солидных проектов. И даже более, что Python начнет восприниматься, как язык для серьезной разработки в более широких кругах. Может, его даже джависты зауважают :).
Да, раньше Python подходил только для написания простых скриптов, но это уже давно неактуально! Надеемся, что подобные мифы на рынке развеются поскорее, а бизнес начнет получать больше выгоды от продуктов на Python.
Если после прочтения статьи остались вопросы, или вы хотите проконсультироваться по разработке проекта, напишите команде Garpix! Мы с радостью ответим на все вопросы и поможем выбрать оптимальное решение.