Средства разработки приложений с минимальным кодированием, вторая попытка


Оригинал:
Low-Code App Development — Second Time Around
Ep9: No-code, low-code and the eternal pendulum of software development
Автор: Нил Уорд-Даттон (Neil Ward-Dutton), IDC Europe

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

Моя карьера отраслевого аналитика начиналась в 1995 году. В глазах одних это делает меня ценным свидетелем технологических волн прошлого, а в глазах других — древним динозавром. Но при взгляде на средства разработки low-code знание истории определенно окажется полезным.

Первая попытка: визуальное программирование

На заре карьеры моими темами были языки четвертого поколения (4GL — fourth generation language) и средства разработки «клиент-сервер». Я изучил их все, от Visual Basic до IBM VisualAge. В то время существовало множество вендоров, предлагавших решение одной и той же проблемы повышения производительности разработки программного обеспечения для бизнеса, которое заключалось в выходе за рамки тогдашней стандартной практики программирования на COBOL, C, C++ и т.п.

Основная ценность этих инструментов образца середины 1990-х годов заключалась в возможности визуального программирования структуры и поведения приложений вместо кодирования их вручную. В это время графические интерфейсы только начинали появляться, и эти новые инструменты использовали преимущества технологии drag-and-drop. Созданные таким образом абстрактные описания структуры и поведения затем или пропускались через кодогенератор, или интерпретировались подобием виртуальной машины.

Это было время взрыва клиент-серверных технологий, и еще одним полем для конкуренции стала кросс-платформенность — возможность запускать однажды разработанное приложение на MacOS, различных версиях Windows и Unix, а может быть даже OS/2 или OS/400.

Вторая попытка: средства разработки low-code

Оглядываясь назад, выход из моды инструментов первого поколения в конце 90-х наверное был неизбежен — несмотря на всю их полезность, всегда оставались сценарии, с которыми они справлялись с трудом. Внимание отрасли переключилось, с одной стороны, на решение проблемы-2000, а с другой, на радужные перспективы Java — кроссплатформенность, возможность быстрого переучивания программистов C и C++, открытое сообщество. В итоге лишь немногие инструменты первого поколения смогли набрать критическую массу.

Однако после почти двух десятилетий пребываний в забытой глуши инструменты быстрого создания программного обеспечения для бизнеса снова в моде — теперь под названием «средства разработки low-code».

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

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

Что изменилось?

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

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

Еще одно изменение — вендоры стали лучше понимать ограничения своих технологий и предлагать механизмы компенсации.

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

И, наконец, последнее, о чем следует задуматься —

Три сценария использования

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

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

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

No-code, low-code и вечный маятник софтверной разработки

Для создания сайта малый бизнес может воспользоваться конструктором – это пример no-code. Но Amazon или Wal-Mart не станут использовать подобный инструмент для создания своих сайтов электронной торговли.

Средства разработки, ориентированные на программистов, являются наиболее мощными и при правильном использовании позволяют создавать максимально надежные решения. Но за это придется заплатить темпом внедрения.

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

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

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

Обсудить