metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2008-02-19 08:41 pm

Отладка мозгом

В свете утренних разборок с многопоточной прогой особенно полезным выглядит следующий пост:

дизайн системы, в которую вносятся изменения, должен быть элегантен и прочувствован. Если я непонимаю системы, которую изменяю, как я могу понять происходящие в ней процессы? Если лучшая ассоциация для дизайна, которую я могу подобрать, сводится к канализационной трубе, по которой передвигаются искаженные до неузнаваемости входные данные, то о каких высоких материях я могу медитировать над stack trace?

Вот. Поэтому даже в безумном дельфи приходится писать программы, выглядящие как ручная реализация функциональной парадигмы, только ради того, чтобы при анализе можно было абстрагироваться от всего, кроме сошедшего с ума модуля. А еще это позволяет нам с [livejournal.com profile] belnetmon независимо писать модули, не занимаясь постоянным согласованием связей между ними.

Поток данных в программе должен представляться наглядно, чтобы его можно было крутить в мозгу в свободное время, не за компом. В этом отношении, конечно, c Haskell, сложно сравнить что либо из известных мне языков - на нем очень удобно думать.

[identity profile] metaclass.livejournal.com 2008-02-19 07:16 pm (UTC)(link)
Можно. Например, парсер хаскеля :)

На самом деле, я бы сильно хотел встроенный интерпретатор хаскеля на предмет генерации заумных отчетов, но для этого придется разбираться во внутренностях Hugs для исправления ограничения вывода типов кортежей 5 полями. Интерфейс его внешний, слава богу, сишный и более-менее мозгом осознаваем.

Или же разобраться как клепать dll с экспортами в сишном стиле на GHC и генерить для них обертки на дельфи.