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

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

Машина поработила их. Машина пришла, чтобы освободить их.

Новый слой абстракции

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

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

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

Платформы разработки с низким кодом делают именно это. И делают они это с двух точек зрения:

  • Они изучают, как разработчики создают и развивают свои приложения.
  • Они снова и снова изучают то, что создают в своих приложениях.

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

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

Наш мозг как вдохновение

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

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

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

Система 2 срабатывает, когда возникает новая ситуация, для которой еще не существует четкого шаблона. Если постоянно сосредотачиваться на этой новой ситуации, в нашем мозгу начинает формироваться новый паттерн, и Система 1 начинает обрабатывать его, прилагая значительно меньшие усилия - нервный путь на месте, и напряжение исчезает.

Аналогия очевидна. Традиционное программирование с высоким содержанием кода - это наша ИТ-отрасль, кропотливо работающая в режиме Системы 2, рассуждая через ситуации и справляясь со все более сложными уровнями сложности для решения бизнес-задач. Low-code - это Система 1, которая начинает работать по мере того, как выявляются и решаются новые шаблоны.

Звучит прекрасно. Эволюция должна быть. Или это может быть слишком хорошо, чтобы быть правдой? Что ж, книга предупреждает вас об ошибках, которые может допустить Система 1. Давайте посмотрим.

Шаг вперед по сравнению с RAD Tools

Если я вас спрошу: что пьют коровы? Вы не должны стыдиться признаться, что вашей первой мыслью, вероятно, было «молоко». Большинство (все?) Люди ответят на это инстинктивно. Это знаменитый тест на ограничение для Системы 1.

Какое здесь отношение к low-code? Что ж, давайте вернемся в то время, когда low-code назывался RAD.

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

Подход с использованием сгенерированного кода, который предполагает, что разработка выполняется только на определенном этапе, оказался гораздо более трудоемким, чем предполагалось изначально. Изучение тысяч строк сгенерированного кода для вставки нестандартного кода оказалось не стоящим хлопот. Это не путь к свободе.

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

Низкий код - это мозг, работающий в Системе 1 и Системе 2

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

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

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

Машинное обучение: автоматизация нашей работы по абстракции

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

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

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

Другими словами, мы продолжим следовать за внутренней работой нашего мозга, автоматически вырабатывая новые шаблоны и беспрепятственно предлагая их, когда это необходимо, с очевидным преимуществом скорости, легкости и мощности!

Low-code только начинается. Будущее не за горами.

В OutSystems мы кропотливо продолжаем исследовать новые подходы к программированию и шаблонам приложений, чтобы предоставить их нашим разработчикам. Об этом можно судить по новым мобильным возможностям, предоставляемым OutSystems 10 поверх React, новой панели редактора стилей в нашей среде IDE или по компонентам, которые мы постоянно предоставляем - новым шаблонам приложений, компонентам приложений и шаблонам пользовательского интерфейса.