* * *
Похоже, вот место, где занимаются нотационной инженерией: http://www.aaai.org/Library/Symposia/Fall/fs07-03.php. Жаль, доступ к статьям закрыт. Но это уже вопрос техники. Я заинтересовался этим местом потому, что люди из CYC опубликовали там бумажку про изменение репрезентации -- http://www.aaai.org/Press/Reports/Symposia/Fall/fs-07-03.php. Понятен их интерес к этой проблеме, достаточно вспомнить Accretion Model of Theory Formation Дугласа Лената (в конце постинга http://ailev.livejournal.com/469995.html).
* * *
Случайно заглянул в пост годичной давности и прочел там Алана Кея (http://ailev.livejournal.com/469995.html):
8. Стильные языки (APL, Lisp, Smalltalk) и агглютинативные ("клейкие")языки типа PL/1. Стильные языки -- для людей, у кторых есть математическая ленивость, они окупаются через год после начала проекта -- когда у вас появляется сильная идея, и вам быстро-быстро нужно все переделать. Агглютинативные языки сопротивляются этой переделке. Кроме того, стильные языки обычно позднего связывания, а агглютинативные языки -- раннего, что приводит к совершенно разным процессам отладки, дает абсолютно разные типы ошибок. И для стильных языков не нужно беспокоиться об архитектуре фон Неймана. Это раздел двух культур, через эти различия в стилях невозможно общаться.Я вот думаю, что colorForth -- это стильный язык сверхраннего связывания.
И все чаще и чаще задумываюсь над этой разницей в использовании стильных языков и агглюнативных -- IMHO, дело даже не в самом языке, а в стиле программирования на языке, который поощряется "тусовкой". Вот почитайте мемуар Михаила Донского, который описывает "стильное программирование" независимо от языка: http://www.polit.ru/science/2008/08/20/programmist.html. Он как раз описывает, что сильный программистский коллектив сам себе разрабатывает фреймворк -- чуть ли не от уровня железа. Создает себе стиль, не обращая внимания на язык. И затем на этом фреймворке получает удивительные результаты -- прирученный тобой язык становится могучим и великим, программирование выдерживает стиль от самого верхнего уровня до самого дна (железа). Похоже, что дело не столько в языке, сколько в стиле его использования -- "голенький" язык подразумевает совершенно другой подход.
Все это верно отнюдь не только для языков. Так, какой-нибудь Адизес или Голдратт создает "полномасштабный" стильный бизнес-язык, на котором описывает решение проблем своих клиентов. Число приемов ограничено, все существенно повторноиспользуемо. А какой-нибудь MBA пытается совладать с агглюнативной окрошкой, остающейся после изучения пары десятков готовых "библиотек" и "фреймворков". В жизни встречаются и работают оба подхода, но тут совершенно уместно замечание Алана Кея: "Это раздел двух культур, через эти различия в стилях невозможно общаться".
UPDATE: поговорил с Донским по телефону. Он полностью подтвердил наблюдение Кея, и добавил два важных пункта: 1. Если проект большой (заведомо более года), то в него безопасно идти, только если у тебя свой инструментарий. И только если проект маленький, то тогда безопасно пользоваться всякими фреймворками. 2. "Язык", который обсуждается (хоть Лисп, хоть Кобол) -- это не язык, это только по недоразумению его называют языком. Язык как раз пишется самостоятельно, собственноручно созданный инструментарий -- вот язык, на котором создается большая система!