Хотя подход к разработке с минимальным кодированием (low-code) обещает простоту и решение проблемы нехватки ИТ-специалистов, он может оказаться скорее иллюзией, чем повышением способности вашей команды приносить реальную пользу, пишет на портале The New Stack Джай Куш, сооснователь компании Nitric. Эффективно альтернативой для сложных задач служат новые автоматизированные фреймворки кодирования.

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

Манящая простота low-code

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

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

Заблуждение, лежащее в основе low-code

На самом деле многие решения на основе low-code демонстрируют фундаментальное непонимание сути разработки ПО: они путают задачу понимания синтаксиса языка программирования с задачей разработки эффективной логики приложения. Языки программирования — это всего лишь инструменты, а их синтаксис — лишь средство выражения решений. Истинная суть разработки ПО заключается в решении проблем, в создании алгоритмов, структур данных и интерфейсов, эффективно удовлетворяющих потребности приложения.

Стремясь упростить разработку ПО с помощью графического интерфейса пользователя (GUI), решения low-code заменяют синтаксис, не упрощая при этом фундаментальную задачу создания надежных приложений. Такой подход может привести к многочисленным недостаткам, неспособным справиться с истинными сложностями создания ПО, что в конечном итоге негативно скажется на способности вашей команды предоставлять реальную ценность.

Другие недостатки решений low-code

Решения low-code часто имеют ограниченные возможности по настройке и не могут удовлетворить специфические, сложные или уникальные требования бизнеса. Еще одним существенным недостатком является риск привязки к поставщику, который может оставить пользователя без всего в случае изменения цен, набора функций или закрытия продукта. Я лично сталкивался с подобными ситуациями, и результат для команды оказывался довольно катастрофическим. Они остаются с серьезным дефицитом навыков и входят в длительный период низкой продуктивности.

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

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

Последние тенденции открывают альтернативный подход

Помимо вышеизложенных проблем, ценность решений low-code еще больше снижается в связи с расширяющимся распространением библиотек и фреймворков практически для всех возможных сценариев использования. Возьмем такие фреймворки, как Next.js и Nitric, или такие платформы, как Supabase и Vercel. Эти новые инструменты, ориентированные на разработчиков, часто оказываются более производительными, чем их low-code-аналоги, и, безусловно, делают получаемые приложения более перспективными.

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

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

Резюме

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

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

Мы утверждаем, что целью должно быть уменьшение количества кода, а не его упрощение. Это именно то, что мы делаем в Open Source-фреймворке Nitric для сокращения необходимого кода путем автоматизации.

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