Данная тема способна вызвать скорее негативную реакцию благодаря тому, что большинство разработчиков являются ее противниками. Все потому, что интенциональное программирование, по сравнению с классическим, имеет существенные недостатки:
* слабая детерминированность инструкций на естественном языке
* значительная длина каждой инструкции, что заставляет вводить довольно объемный код
* код выглядит единообразным, что может затруднять его восприятие и процесс поиска
* сниженная скорость работы программы за счет анализа большего количества символов
Но у него есть и существенные достоинства:
* человеку интуитивно понятны все инструкции, нет необходимости в предварительном изучения нового языка
* каждая инструкция однозначно отражает намерение разработчика, ее написавшего
* природная способность естественного языка к обобщению и созданию новых уровней абстракции (как для объектов, так и для методов манипуляции с ними) на основе существующих
* процесс программирования на естественном языке возможен не только в чисто императивном виде, но и в виде общения
Для меня наибольший интерес представляет последний пункт, позволяющий изменять поведение механизированной системы на лету в процессе коммуникации. В этом случае язык может выступать и как средство для манипуляций с данными и как средство для обмена данными. Это наделяет интенциональное программирование способностью к реализации своего потенциала в нишевых областях, таких, как робототехника, когда механизм сможет получать описание поведенческих алгоритмов, а так же любую другую информацию через единый коммуникационный интерфейс, при помощи единого языка. [Читать дальше →][1]
[1]:
http://habrahabr.ru/post/268401/#habracut