Сегодня, 25 февраля, вышла версия 1.5.0 языка CoffeeScript. В ней впервые появилась базовая поддержка так называемого «грамотного» или «литературного» программирования (literate programming). Концепцию грамотного программирования придумал Дональд Кнут в 1981 году при разработке системы TeX. В отличие от исходного кода на обычном языке программирования, который включает в себя небольшие вкрапления комментариев, грамотное программирование подразумевает написание текстового документа на естественном языке с вкраплениями кода. Многие существующие системы грамотного программирования вообще не зависят от конкретного машинного языка.
Технически, грамотное программирование — система макросов, которая позволяет создать поверх фрагментов кода на любом языке программирования слой абстракций в виде фраз естественного языка, фактически создавая исполняемый псевдокод. Исходный файл одновременно является и исполняемой программой и документом на естественном языке, описывающем её.
Строго говоря, в CoffeeScript 1.5.0 пока не реализована полностью концепция Дональда Кнута — раскрытие макросов не поддерживается, компилятор лишь позволяет совмещать в одном файле с расширением .litcoffee разметку Markdown и код CoffeeScript. Такой файл можно выполнять, как обычный скрипт, а можно открыть в текстовом редакторе, где он будет выглядеть как отформатированный текст с фрагментами кода. Вот скриншот скрипта написанного в новом стиле:
А вот так он выглядит на Гитхабе в виде документа Markdown.
Схему подсветки синтакиса .litcoffee
для TextMate и SublimeText можно скачать здесь.
Раньше похожий функционал предоставляла библиотека Docco, автором которой, как и самого языка CoffeeScript, является Джереми Ашкеназ. Она позволяет использовать в комментариях разметку Markdown и выводит текст в виде двух колонок — отформатированных комментариев и чистого исходного кода.
Автор: ilya42