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