LINUX.ORG.RU
ФорумTalks

Что такое «literate programming»?


0

0

Наткнулся на термин. Что он означает?

В гугле был, в википедии тоже. Узнал, что его переводят как "грамотное программирование", "литературное программирование" или "структурированное документирование", что его любит Кнут, что это означает совмещение текста программы и документации к ней, что оно не получило особого распространения. Но что о нём думает коллективный разум? Кто с этим сталкивался, поделитесь впечатлениями.

★★★★★

Очень нужная и полезная вещь.

В обычном коде собственно код идёт основным потоком, а небольшими вставками - комментарии. В literate programming комментарии - основной поток, а код - мелкие вставки. Причём комментарии пишутся с расчётом на последующее опубликование, то есть составляют связный текст.

Miguel ★★★★★
()
Ответ на: комментарий от Obey-Kun

Для Ъ:

> Вопрос "Есть ли будущее у ЛП?" сегодня уже весьма актуален. Даже в хорошо подходящих для нее областях применения эта методология не нашла массового распространения -- в первую очередь, из-за несовершенства технологических средств. У ЛП есть фанатичные приверженцы, но, судя по крайне малому количеству реально созданных на основе ЛП программ, приверженность -- не главный решающий фактор в развитии. Как, впрочем, и фанатизм.

Статья 2002 года.

Obey-Kun ★★★★★
()

Открой документацию по любому пакету для теха.

Sphinx ★★☆☆
()

Ого! Надо будет на работе показать статейку, а то все вечно попрекают, что мол такие большие комментарии пишешь. Нам же код заказчику передавать. А на самом деле так намного удобнее, особенно когда потом надо вспомнить, что и как должна программа делать на самом деле. Для гуёв конечно смысла большого нет так писать, а вот бэкэнды....

ksicom
()

> что это означает совмещение текста программы и документации к ней

Совмещение текста с документацией очень распространено и популярно (docstrings в лиспах, javadoc, doxygen, ...). Но literate programming - это еще и подход к программированию. Код в нем является частью повествования, и текст - это не просто документация, это хорошего уровня академическая статья, рассказывающая о том, как этот код получен и что он должен делать.

То есть, literate programming - это такая технология самодисциплины, в первую очередь.

> Кто с этим сталкивался, поделитесь впечатлениями.

Я его в основном для численных методов использовал - очень удобно в одном месте держать вывод формулы и код, её реализующий.

anonymous
()
Ответ на: комментарий от anonymous

> Я его в основном для численных методов использовал - очень удобно в одном месте держать вывод формулы и код, её реализующий.

То же самое здесь :-) Удобен LispTex или http://sphinx.net.ru/blog/entry/latex-autobuild/

Sphinx ★★☆☆
()
Ответ на: комментарий от Sphinx

Правильный подход. Причем, если на Схеме код ещё более-менее можно сам по себе читать, то у меня всё гораздо страшнее - Fortran77, его без literate programming использовать вообще нереально.

ЗЫ: очень рульная штука - slatex. Гораздо приятнее, чем пакет listings.

anonymous
()

Господа литеральщики, советую вам таки прочитать книгу Мартина Фаулера «Рефакторинг», и таки научиться уже нормально писать программы, а не писать комментарии.

anonymous
()
Ответ на: комментарий от anonymous

Иди на хер со своим Фаулером и с этим идиотским рефакторингом.

"Бизнес логику" можешь рефакторить хоть до посинения, дебил, а вот с численным методом, или вообще с каким либо другим наукоёмким алгоритмом это не прокатит. Иди, быдлокодь дальше, и не лезь в разговор умных дяденек.

anonymous
()
Ответ на: комментарий от anonymous

Сразу видно культурного и образованного человека! Приятно поговорить с таким :)

А книжку таки почитай, только постарайся ещё понять, про что там пишут :)

anonymous
()
Ответ на: комментарий от anonymous

Ты - тупая обезьянка. Повторяю ещё раз для тупых быдлокодеров - рефакторинг и literate programming абсолютно не пересекаются, и решают совершенно разные задачи. Посмотрю я, как ты будешь "рефакторить" для улучшения читабельности сложный численный алгоритм, который просто по определению невозможно понять, если не знаешь полностью его вывода. А вывод нельзя нормально описать без изобразительных средств latex-а (и иногда ещё пара-тройка иллюстраций и графиков требуется). Короче, быдлокодерня, не лезь своими грязными лапами в то, чего ты не поймешь никогда просто в силу физиологических ограничений, интеллектом ты не вышел.

anonymous
()
Ответ на: комментарий от anonymous

Товарищ, а ты в жизни поди такой же боевой и напористый? Вот бы посмотреть на героя :)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.