January 6th, 2008

2019

Jeffry Gray и Crosscutting concerns, и опять про Священный Грааль Программирования

Еще один интересный человек -- Jeffrey Gray, чью диссертацию по порождающему подходу в аспектном программировании я уже поминал (http://www.cis.uab.edu/gray/Pubs/Dissertation.pdf). Эта диссертация интересна еще и тем, что в ней на 8-12 страницах проводится прямая парралель между модуляризацией софта и модуляризацией организации, и дается забавное "софтовое" толкование бюрократии.

Страница Jeffrey Gray -- http://www.cis.uab.edu/gray/
Из публикаций (http://www.cis.uab.edu/gray/Pubs/pubs.htm) можно отметить
http://www.cis.uab.edu/gray/Pubs/software-suman.pdf -- про то, как отслюнявить аспект-ориентированность от Явы и использовать в разных legacy-языках (вплоть до Кобола). Интересно, что в списке решений используется переход от объектных и XML-трансформаций к "переписыванию терминов" (term rewriting). Это не совпадает с предложенным в FONC направлением главного удара -- подходу pattern matching (язык OMeta от Ian Piumarta и Alessandro Warth -- http://www.cis.uab.edu/gray/Pubs/software-suman.pdf), но совпадает по решаемым задачам. Становится понятным, какую основную задачу сейчас решают языковые теоретики: многоязыковость. Цивилизованная система программирования должна уметь говорить на абсолютно разных (особенно -- legacy) языках программирования, и использовать множество парадигм программирования. Собственно, все публикации (например, про создание аспект-ориентированных домейн-специфик языков на базе инструментария ANTLR и LISA -- http://www.cis.uab.edu/gray/Pubs/dsal-2006.pdf) тоже про это.
* * *
Интересно, как в русском языке переводятся crosscutting concerns (см., например, http://www.yandex.ru/yandsearch?text=crosscutting+concerns+%D0%B0%D1%81%D0%BF%D0%B5%D0%BA%D1%82): пересекающиеся блоки, пересекающиеся задачи, сквозная функциональность, сквозной функционал, пересекающие требования, охватывающий все приложение функционал -- это я просто перечислил то, что встретилось в первых шести ссылках Яндекса. Шесть упоминаний -- шесть переводов. Если заглянуть в Lingvo, то можно окончательно запутаться.
* * *
Лишний раз убеждаюсь, что Священный Грааль Программирования (Сверхлаконичный и Сверхвыразительный Язык, который Может Выразить Всё) по-прежнему ищется. Весь этот порождающий подход -- это попытки сделать более выразительные языки описания того и сего, и исполняющие/воплощающие системы к этим языкам.
* * *
Над чем интересно еще подумать, так это над "по-настоящему сложными задачами", которые крутятся вблизи фронтира классической сингулярности: например, софтом разводки схемы микропроцессора. Как-то А.Г.Кушниренко мне заметил, что именно на таких сверхсложных задачах проверяются языки -- и именно такие задачи оказываются вдруг написаны на LISP, Smalltalk и прочих непопсовых "ученых" языках. И это, по его словам, глубоко не случайно. Большинство людей не говорят выразительной речью. Выразительной речью говорят актеры, которых учат много лет. Большинству программистов нафиг не нужен Священный Грааль -- не по Сеньке шапка...