Введение

Если вы работаете в интернет-бизнесе, особенно в качестве инженера-программиста, вы наверняка слышали об инструментах low-code/no-code (LCNC). В настоящее время популярные технические порталы часто упоминают отсутствие кода; например, диаграмма тенденций Google показывает постоянно растущий интерес к фразе «нет кода низкий код».

Описание изображения

Также постоянно росло количество инвестиций в low-code/no-code. По крайней мере, до 2022 года. Вот график на основе электронных таблиц данные, которые показывают данные до 2022 года:

Инвестиции в Low-Code

К сожалению, нет свежей информации, описывающей реакцию венчурного рынка LCNC на недавний финансовый спад в 1 и 2 кварталах 2022 года, однако, на мой взгляд, она должна коррелировать с общим спадом венчурного рынка в целом и не сильно отклоняться. Кроме того, согласно Электронная таблицавеб-отчет который содержит различные прогнозы, прогнозируемый размер «Рынка платформ разработки с низким кодом» еще больше, и ожидается, что к 2027 году он достигнет 84,8 миллиардов (средний прогноз). Это много.

Таким образом, данные показывают, что low-code/no-code — это очень горячая тема, которая привлекает большое внимание инвесторов и освещается в СМИ, но вопрос в том, действительно ли они помогают в этом. разработка программного обеспечения?

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


Вкратце, что такое low-code/no-code?

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

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

Ниже приведены примеры некоторых инструментов LCNC, упомянутых на первой странице Google при поиске «инструменты без кода»:

На картинке представлены Bubble, Retool, Microsoft Power Apps, Adalo, Webflow, Google Appsheet.


Язык визуального программирования старой школы

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

Согласно с Википедиявизуальный язык программирования (VPL) — это любой язык программирования, который позволяет пользователям создавать программы, манипулируя элементами программы графически, а не указывая их в текстовом виде.». Хорошо, теперь давайте сравним это с определение платформы разработки без кода по Википедии: «Платформы разработки без кода (NCDP) позволяют программистам и непрограммистам создавать прикладное программное обеспечение с помощью графических пользовательских интерфейсов и конфигурации вместо традиционного компьютерного программирования.». Звучит немного похоже? Или полностью похожи? Оба обещают создавать программное обеспечение графически, а не визуально. Поэтому имеет смысл проанализировать, а затем экстраполировать, что произошло с VPL и почему они никогда не становятся стандартом разработки программного обеспечения.

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

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

Иван также утверждает (и я согласен), что именно по этой причине «визуальные языки программирования» никогда не пользовались широкой популярностью — кто-то хочет давать инструкции текстовым способом, а не визуальным. С моей точки зрения, это та же самая причина, по которой инструменты LCNC в долгосрочной перспективе терпят неудачу — алгоритмы лучше читаются и записываются в виде текста. Пытаясь подходить к разработке программного обеспечения визуально, как «визуальные языки программирования», инструменты low-code/no-code также унаследовали слабые стороны VPL и, с моей точки зрения, обречены на ту же судьбу.


Low-code/no-code и полнота по Тьюрингу

Кроме того, перетаскивание ограничено по своей природе — вы можете проектировать систему только в пределах, определенных инструментами LCNC. Другими словами, инструменты с низким кодом / без кода не являются полными по Тьюрингу — существует только конечный набор конфигураций, которые можно достичь с помощью инструмента LCNC. Система называется полной по Тьюрингу, если она может решить любую вычислительную задачу, независимо от того, насколько она сложна, при условии, что у нее достаточно времени и памяти, а также соответствующих инструкций. Поскольку лучший способ указать инструкции (отношения во времени, последовательность событий) — это текстовая форма, возможность указать эти инструкции будет очень ограничена из-за характера инструмента LCNC, что делает ограниченным весь подход. Хотя язык программирования на самом деле является машиночитаемой версией естественного языка, которого достаточно для описания любых отношений между любым количеством объектов, следовательно, язык программирования универсален.

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

Логика следующая, как упорядоченный список:

  1. Я хочу построить приложение сведение к минимуму объема кодирования;
  2. Я захожу в инструмент LCNC и создаю приложение;
  3. Мне нужно расширить приложение, чтобы оно соответствовало моим конкретным потребностям, поэтому я пишу код в инструменте LCNC;
  4. Поскольку я уже пишу код, то почему бы мне не набрать полную скорость и не настроить IDE в первую очередь и не написать код обычным способом?

Так чтобы иметь возможность создавать полноценное программное обеспечение, инструменты с низким кодом / без кода должны сходиться с IDE., следовательно, собираются составить конкуренцию текущим продуктам (Visual Studio, JetBrains). С точки зрения автора, проще добавить функции low-code/no-code в IDE (например, конструктор пользовательского интерфейса), чем создавать новую сложную IDE с нуля. Кроме того, инструменты LCNC основаны на браузере, поэтому IDE также должна быть основана на браузере, что ограничивает ее возможности. Вот почему я считаю, что написание кода никогда не устареет в индустрии программного обеспечения.


Как насчет шаблонов?

Шаблонстартовый набор, тема, шаблонный — это слова с очень похожим значением — набор файлов и папок, которые служат отправной точкой для приложения. Существуют различные примеры, такие как бесплатные шаблоны на Github, как создать-реагировать-приложение или же реакция-материал-админThemeForest с множеством тем WordPress, Template Monster, Creative-Tim и плоская логика с премией реагировать, угловатый, вью шаблоны и другие ресурсы, специализирующиеся на веб-шаблонах, и так далее. Только Flatlogic продала не менее 20 000 лицензий с момента своего запуска в 2013 году. У Metronic более 100 000 продаж. Количество использований бесплатных шаблонов еще выше и, несомненно, поддается учету. Сколько пользователей ежедневно используют приложение create-реагировать?

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

Итак, дело в том, что рынок шаблонов требует прорыва и инноваций. Не LCNC, поскольку в конечном итоге всем нужно писать код. Во-первых, рынок шаблонов жив. Вероятно, самым значительным игроком здесь является Envato, который один приносит более 200 миллионов долларов годового дохода, быть прибыльной компанией с прибылью в 36 миллионов долларов. По моим оценкам, сегодня весь объем рынка составляет не менее 1 миллиарда долларов реального дохода, производимого участниками рынка сегодня. Но вы никогда не услышите об этом рынке в новостях. Это просто работает.

Я считаю, что гораздо больше инвестиций в инструменты LCNC и НЕТ инвестиций в шаблоны / темы, потому что гораздо проще продать «серебряную пулю» создания веб-приложений без кодирования инвесторам, поскольку большинство из них не являются техническими, следовательно не понимаю тезисы, изложенные в этой статье. Это также подогревается различными «исследованиями», прогнозирующими, что размер рынка LCNC через несколько лет достигнет XXXB долларов, в то время как никто вообще не говорит о рынке шаблонов.

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


Об авторе

Филип Дейн является профессионалом в области компьютерных наук с более чем 13-летним опытом работы в области разработки программного обеспечения. Филип также является магистром экономики и последние 8 лет является генеральным директором Flatlogic.