Вторая волна ИИ: переосмысление экспертных систем.
В 1980-е годы также наблюдалась вторая волна энтузиазма в отношении ИИ, сосредоточенная на экспертных системах. Такие компании, как Inference Corporation, Intellicorp и Teknowledge, обещали использовать человеческий опыт в системах, основанных на правилах, которые могли бы принимать решения так же эффективно, как и эксперты-люди.
Области применения были весьма привлекательными: медицинская диагностика, финансовый анализ, настройка оборудования и, конечно же, автоматическое программирование. Системы, подобные R1/XCON, разработанные компанией Digital Equipment Corporation, действительно добились успеха, сэкономив компании миллионы долларов за счет автоматической настройки компьютерных систем.
Японский проект «Компьютер пятого поколения», запущенный в 1982 году при масштабных государственных инвестициях, был направлен на создание компьютеров, способных рассуждать с помощью логического программирования. Явная цель состояла в том, чтобы обогнать западные технологии и создать машины, способные понимать естественный язык, автоматизировать программирование и развивать искусственный интеллект.
К 1990 году проект «Пятое поколение» в значительной степени не достиг своих целей. Экспертные системы оказались ненадежными, давая неожиданные сбои при столкновении с ситуациями, выходящими за рамки их узкой компетенции. Поддержание баз правил становилось все более сложной задачей по мере роста систем. А фундаментальная задача приобретения знаний — заставить экспертов-людей формулировать свои знания в форме, доступной для машин, — оказалась гораздо сложнее, чем ожидалось.
Вторая «зима искусственного интеллекта» наступила в начале 1990-х годов. Снова финансирование сорвалось. Снова исследователи переименовали свои работы. Снова фундаментальная перспектива создания машин, способных программировать себя, отошла на второй план.
Эпоха интернета: веб-разработка и мечта о демократизации.
В середине 1990-х годов появилась Всемирная паутина, а вместе с ней и новая надежда на упрощение создания программного обеспечения. Предполагалось, что HTML настолько прост, что любой сможет создавать веб-страницы. И действительно, миллионы людей научились создавать простые веб-сайты, используя лишь текстовый редактор и немного целеустремленности.
Но веб-пространство быстро стало сложнее. JavaScript добавил интерактивности. CSS добавил стилизацию. Программирование на стороне сервера стало необходимым. Базы данных стали основой для контента. Безопасность стала критически важной. Производительность стала конкурентоспособной.
Реакция была предсказуемой: появились новые инструменты, обещающие упростить веб-разработку. Dreamweaver, FrontPage, а позже WordPress и Wix обещали, что любой сможет создавать профессиональные веб-сайты без программирования. Системы управления контентом абстрагировали сложность процесса.
Эти инструменты позволили сделать базовое присутствие в интернете доступным для людей, не являющихся разработчиками. Но профессиональная веб-разработка стала сложнее, а не проще. Появление одностраничных приложений, дизайна, ориентированного на мобильные устройства, прогрессивных веб-приложений и современной экосистемы JavaScript создало новые уровни сложности, которые потребовали привлечения новых категорий специалистов.
Эта тенденция сохранилась: инструменты, упрощающие выполнение базовых задач, позволяли реализовывать более амбициозные проекты, требующие более сложных навыков, что, в свою очередь, создавало спрос на более квалифицированных разработчиков.
Архитектура, управляемая моделями, и мечта об UML
В начале 2000-х годов была предпринята еще одна попытка автоматической генерации кода с помощью архитектуры, управляемой моделями (Model-Driven Architecture, MDA). Группа по управлению объектами предложила преобразовывать платформенно-независимые модели в реализации, специфичные для конкретной платформы, с помощью автоматизированных инструментов.
Унифицированный язык моделирования (UML) стал стандартной нотацией. Такие инструменты, как Rational Rose, Together и Enterprise Architect, обещали создавать полноценные приложения на основе UML-диаграмм. Концепция была знакомой: моделируйте свою систему на высоком уровне абстракции, а инструменты позаботятся о деталях реализации.
Метод MDA добился определённых успехов в специализированных областях, особенно там, где связь между моделями и кодом была хорошо понятна, а сгенерированный код не требовал значительной доработки. Но для большинства приложений этот подход оказался громоздким. Поддержание синхронизации между моделями и кодом представляло собой сложную задачу. Сами модели становились сложными, требуя специальных навыков для создания и поддержки.
К 2010-м годам концепция MDA (Master of Decision-Advanced) утратила свою актуальность в практическом применении, хотя её принципы оказали влияние на современные методы генерации кода и предметно-ориентированные языки программирования.
Возрождение технологий без кода и с минимальным кодированием
Примерно с 2015 года появилось новое поколение платформ без кода и с минимальным использованием кода. Такие названия, как Bubble, Webflow, Airtable, Zapier и Microsoft Power Platform, обещали дать возможность разработчикам-любителям создавать приложения с помощью визуальных интерфейсов и компонентов, размещаемых методом перетаскивания.
Маркетинг повторял обещания всех предыдущих поколений. Бизнес-пользователи будут создавать собственные приложения. Задержки в ИТ-сфере исчезнут. Цифровая трансформация ускорится. Программисты станут ненужными или, по крайней мере, гораздо менее востребованными.
Инструменты без программирования добились настоящего успеха в своих областях. Простые приложения, автоматизация рабочих процессов, базовые веб-сайты и внутренние инструменты можно создавать быстрее с помощью этих платформ, чем с помощью традиционной разработки. Для решения определенных задач они представляют собой настоящий прогресс.
Но закономерность сохраняется. Сложные приложения по-прежнему требуют сложного мышления. Когда требования превышают возможности платформ, пользователи сталкиваются с препятствиями. Интеграция с существующими системами часто затруднена. Масштабирование производительности представляет собой сложную задачу. А наиболее опытные пользователи платформ без кода зачастую являются бывшими разработчиками, которые понимают лежащие в их основе принципы.
Что еще более важно, платформы без программирования не снизили спрос на традиционных разработчиков. Напротив, взрывной рост числа цифровых приложений увеличил этот спрос. Рынок разработчиков программного обеспечения продолжает расти, даже несмотря на распространение платформ без программирования.