OberonCore
https://forum.oberoncore.ru/

Любопытное интервью Кнута
https://forum.oberoncore.ru/viewtopic.php?f=26&t=991
Страница 3 из 3

Автор:  Geniepro [ Четверг, 22 Май, 2008 20:59 ]
Заголовок сообщения:  Re: Любопытное интервью Кнута

Info21 писал(а):
Geniepro писал(а):
В Блэкбоксе что-то типа такого возможно, но всё же акцент там противоположный -- код главный, комментарии вспомогательные...


Ерунда.
Это легко реализовать:

--- цепочка вьюшек, показывающих разные куски одного и того же текста;
--- объемлющий текст -- комментарий;
--- текст во вьюшках -- программа;
--- компилятор работает с текстовой моделью под этими вьюшками, ему пофиг, что они показываются не в одном окне-вьюшке, а "распределенно".

Возвращаясь к Literate Programming. Интересная статья: А.Зубинский, "Грамотное программирование"
Из неё следует, что просто "накидать вьюшек, которые отображают разные куски кода программы" -- это вовсе даже и не Literate Programming. В LP всё как раз наоборот -- пишете текст-объяснение принципов работы программы, сопровождая его отрывками кода, причём пишете в той последовательности, какую считаете нужной, а затем спец-инструментами генерируете документацию и исполнимый код программы.
Естественно, вручную манипулировать вьюшками в Блэкбоксе, синхронизируя код и текст -- неблагодарное занятие, но и к Literate Programming это отношения никакого не имеет...

Автор:  Wlad [ Четверг, 22 Май, 2008 21:19 ]
Заголовок сообщения:  Re: Любопытное интервью Кнута

Geniepro писал(а):

Вы с товарищем Zubinsky по-осторожнее... На древних картах писали "Тут бродют драконы и люди с пёсьими головами"...

Автор:  Info21 [ Четверг, 22 Май, 2008 21:51 ]
Заголовок сообщения:  Re: Любопытное интервью Кнута

Geniepro писал(а):
Естественно, вручную манипулировать вьюшками в Блэкбоксе, синхронизируя код и текст -- неблагодарное занятие, но и к Literate Programming это отношения никакого не имеет...


Естественно, Вы, дорогой Geniepro, в дым не поняли мои слова.

Автор:  Vlad [ Четверг, 22 Май, 2008 22:05 ]
Заголовок сообщения:  Re: Любопытное интервью Кнута

Geniepro писал(а):
Такой подход к Literate Programming никакого отношения не имеет...


Вот это вот имеет?
http://moonflare.com/code/select/select.nw
http://moonflare.com/code/select/select.cpp

Не впечатляет. Лично меня. Возможно потому, что меня мало интересуют хитрые алгоритмамы сортировки, да и алгоритмы вообще. Алгоритмы для повседневных задач давно известны, пишутся по ходу дела и практически на автомате. А вот помогает ли Literate Programming для описания композиции системы и взаимодействий между компонентами? Можно как угодно подробно расписать каждый алгоритм в отдельности, но все вместе все равно будет не понятно как работающим "мясом".

Автор:  batyrmastyr [ Понедельник, 26 Май, 2008 10:49 ]
Заголовок сообщения:  Re: Любопытное интервью Кнута

Geniepro писал(а):
Цитата:
... в очень богатой библиотеке классов, такой библиотеки никогда раньше еще не было, собственно на примерах ее использования ученики гораздо лучше поймут программирование, чем на избитых сортировочках и задачках для работы с массивами, которые не имеют никакой практической ценности и ничего не вырабатывают в плане навыков программирования.

Ну вообще-то к этому же пришли и в швейцарском ETH, когда туда пришёл Бертран Мейер со своим Эйфелем и начал пропихивать вот точно такую же методику обучения -- на примере использования кучи готовых библиотек...

Тут Вы, насколько мне известно, ошибаетесь - по методике Бертрана Мейера, обучение на примере использования кучи библиотек - это только начало, "показ ослику морковки". Потом студентам объясняют зачем эти библиотеки нужны, дальше - их внутреннюю кухню и алгоритмы, и, под занавес, заставляют написать свой аналог библиотеки.
В итоге, пройти мимо "избитых сортировочек" все равно не удастся.

Автор:  TAU [ Четверг, 19 Июнь, 2008 08:45 ]
Заголовок сообщения:  Re: Любопытное интервью Кнута

Владимир Лось писал(а):
http://webplanet.ru/interview/soft/2008/05/06/knuth.html
Помимо других интересных моментов, обратило на себя внимание это место:
Цитата:
Я также должен признать, что у меня есть сильное предубеждение против моды на многоразовое использование одних и тех же кодов (reusable code). Для меня, "пере-редактированный" код гораздо лучше, чем нетронутый "черный ящик" или набор инструментов. Я об этом много могу говорить. Если вы убеждены, что повторно исползуемый код прекрасен, я вряд ли смогу вас разубедить. Но вы никогда не разубедите меня, что такой код не опасен.
:twisted:

Вот еще интересное мнение по поводу многократно используемого программного кода:
Псизбольница в руках пациентов писал(а):
приложения для настольных компьютеров содержат так много меню и текстовых диалоговых окон потому, что все оконные системы Мiсrоsоft Windows, Мас OS, OS/2, Solaris - предоставляют готовые модули кода, обеспечивающие работу таких функций. И наоборот, ни одна из этих систем не содержит большого количества кода для механизмов drag-and-drop; вот почему в приложениях так мало непосредственного манипулирования (direct manipulation). Диалог можно создать при помощи шести-восьми строк простого декларативного кода. Идиома drag-and-drop требует примерно сотни строк весьма запутанного процедурного кода. Выбор программиста здесь очевиден. Выгоды конечного пользователя в контексте такой экономии обычно не рассматриваются...
Привычка программистов повторно использовать код интересна их готовностью иметь дело с кодом сомнительного происхождения. Некоторые неопытные программисты начинают с черновых набросков первой попавшейся на глаза идеи, и этот фрагмент кода, будучи созданным, становится основой всех последующих усилий по разработке благодаря интенсивному повторному использованию.
Для примера: ядро операционной системы Windows создавали очень опытные программисты, а вот первые приложения, показывающие приемы взаимодействия программы с пользователем, были написаны практикантами и начинающими программистами той же Мicrosoft. Внутренний код Windows совершенствовался и переписывался, постепенно улучшаясь. При этом возмутительно большое количество популярных приложений до сих пор содержит длинные фрагменты кода, написанные двадцатилетними студентами, проводившими лето в Редмонде

Автор:  Valery Solovey [ Четверг, 19 Июнь, 2008 10:00 ]
Заголовок сообщения:  Re: Любопытное интервью Кнута

Что имел в виду Кнут, говорить сложно. Он выразился слишком туманно.

Однако, Купер говорит про повторно используемый код другого рода, нежели мы. То, о чём он говорит, можно описать следующими словами. Потратить немного времени на создание первой корявой версии, чтобы в последующем не совершенствовать её, а тупо копировать. На мой взгляд, чтобы получить хороший повторно используемый код, требуется потратить много усилий и времени.

Ещё одно отличие: Купер говорит про повторно используемый исходный, а не откомпилированный код.

Автор:  Евгений Темиргалеев [ Четверг, 19 Июнь, 2008 10:58 ]
Заголовок сообщения:  Re: Любопытное интервью Кнута

Цитата:
Но вы никогда не разубедите меня, что такой код не опасен.
Valery Solovey писал(а):
Ещё одно отличие: Купер говорит про повторно используемый исходный, а не откомпилированный код.
Хорошо подмечено. Когда мы повторно используем какой-нибудь KERNEL32.DLL...

Автор:  Comdiv [ Четверг, 15 Март, 2018 16:32 ]
Заголовок сообщения:  Re: Любопытное интервью Кнута

Geniepro писал(а):
Ещё пример: seL4 -- микроядро семейства L4, написанное на Хаскелле в стиле "Literate Programming".

Микроядро написано на Си, по нему генерируется машинный код. На хаскеле - код, идентичный сишному, в качестве исполняемой спецификации как промежуточной фазы доказательства корректности от спецификаций на Isabelle до машинного кода.

Страница 3 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/