Literate Programming -- интересная идея, но, как упоминалось в этом интервью, слишком мало людей и хорошо пишут программы, и хорошо их документируют.
Вообще, было бы интересно попробовать инструментальную среду, в которой главное -- описание задачи, документация, а код -- лишь вкрапления, решающие эти ставящиеся задачи. Но тут, конечно, важны особенности языка, например, насколько компактен синтаксис, действительно ли такой код будет вкраплением...
Было бы занятно посмотреть на исходник, который содержит не только комментарии, но и всякие красочные диаграммы, разноцветные таблицы и т.д. и т.п., смотришь на него в веб-браузере -- документация, компилируешь -- исходник...
В Блэкбоксе что-то типа такого возможно, но всё же акцент там противоположный -- код главный, комментарии вспомогательные...
Как я понимаю, этот стиль "грамотного" программирования более всего распространён в академической среде, да и то не сильно широко. Вот я сейчас подсчитал, сколько файлов в исходниках компилятора Хаскелла написано в стиле "Literate Haskell Script" -- в пять раз меньше, чем в обычном виде... И обычные исходники понять, наверное проще, если не пользоваться спец-редакторами...
Кстати, в одном из первых сравнений по быстрому прототипированию на разных языках одной военной задачи (Paul Hudak, Mark P. Jones,
"Haskell vs. Ada vs. C++ vs. Awk vs. ... An Experiment in Software Prototyping Productivity", 1994 г.) авторы программы на Хаскелле пользовались как раз Literate стилем, и несмотря на то, что эксперты не знали ни Хаскелла, ни функционального программирования вообще, тем не менее решение на Хаскелле было признано очень и очень понятным, эксперты просто не могли поверить в то, что это компилируемый исходник. Этому способствовало так же и то, что текст получился самым коротким -- всего 85 строк, из которых кода было 34 строки, остальное -- декларации типов и т.д.; так же там было 465 строк документации -- фактически постановка задачи, комментируемая кодом на Хаскелле.
Сравните с решениями на Аде и С++ -- Ада: 767 стр. кода/714 стр. документации, Ada95: 800/200, С++: 1105/130 (правда, это решение так и не было закончено в срок :о) -- С++, панимаишь...)
Ещё пример: seL4 -- микроядро семейства L4, написанное на Хаскелле в стиле "Literate Programming". Код программы подавался компилятору как исходник, в систему доказательства теорем для верификации, и в систему подготовки текстов для генерации документации к программе...
ЗЫ. Кстати, последнее время становится всё более модным в блогах программистов писать заметки в стиле Literate Programming. То есть вы читаете
какую-то статью, которая комментируется кодом на том же Хаскелле, например, затем копируете её через буфер обмена и прогоняете компилятором.
Особый шик -- многоязычные статьи, с параллельными текстами программ на двух и более языках программирования, например, на Хаскелле и Рубине...