metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-06-16 09:06 pm

Стектрейсы функциональщины

К этому: http://jdevelop.livejournal.com/1969110.html
Вообще, в F# та же проблема. Когда функциональный язык сделан поверх не способствующей тому платформы, стеки вызовов превращаются в кромешный ад.
Причем, если при этом фигурирует ленивость - можно сразу вешаться, т.к. найти источник ошибки, не натыкав во все места принудительную активизацию всех ленивых величин, практически нереально (при работе с БД и утеканием итераторов из открытых запросв это еще обычно и ошибку вылечит).
Альтернатива, видимо - некая визуализация потоков данных и показ "откуда пришла эта хрень".

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

[identity profile] zamotivator.livejournal.com 2012-06-17 02:18 pm (UTC)(link)
Километровые стек-трейсы, глобальные энергичные форсеры ленивости, отладка по два дня, чтобы понять где проблема

[identity profile] antilamer.livejournal.com 2012-06-17 04:47 pm (UTC)(link)
Ну, первое из этого - результат использования примитивного средства, не предназначавшегося для программ со столь обильным и разносторонним использованием понятия "функция". Хотя я признаю, что альтернативы ему нет - как нет альтернативы, ну скажем, приборной панели с регистрами в виде лампочек и рычажков - при повышении уровня языка отладка на низком уровне становится сложнее, зато обычно упрощается на высоком уровне.

Второе и третье - одно и то же, и я и сам не уверен, приносит ли ленивость на нынешнем уровне развития технологий в среднем больше вреда или пользы. С удовольствием покодил бы на языке типа Хаскелла, только без ленивости.