Здравствуй дорогой дневничoк.

Сел я пару дней назад за прочтение порекомендованной мне книжки.
"Learn python the hard way" от Shaw Z.A.

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

Но не суть, годная книга для начинающих, мне она собственно нужна для ознакомления с базовым синтаксисом. В общем, если целенаправлено за неё сесть часа за 4-8 читается вся.

Но дочитал я до 110-ой страницы, и моему взору предстала фраза от разработчика с 20-ти летним стажем, которая вызвала боль в нижней части поясницы.

Do not use a “debugger”. A debugger is like doing a full-body scan on a sick person. You do not get any specific useful information, and you find a whole lot of information that doesn’t help and is just confusing.
...
"The best way to debug a program is to use print to print out the values of variables at points in the program to see where they go wrong."

Перевод:

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

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

Да принт хорош для простых моментов потому что отладчик ещё освоить надо.
Если на начальном этапе или в примитивной логике надо выявить почему подсчёт дал скажем 5, а не 7, там это вполне сойдёт.
Но при более сложной схеме, скажем MTV приложение на django, где баг происходит на уровне темплейта, или в обще хер его знает где находится, то тут только отладчиком, ибо убьётся куча времени на выявления багнутого участка кода принтами. Куда проще раставить брейкпоинты и проследить течение данных в процессе работы приложения, даже проблемы выше примитивных при освоенном отладчике уже легче решить им нежели принтом.

Меня убило что объяснение в книге однозначное, и не даёт понимания о том что где применять.
Дебаггер это хороший инструмент который при грамотном использовании сокращяет время отладки приложения и делает этот процесс проще, он попросту требует определённой квалификации и понимания того что происходит.
ИМХО просто глупость учить начинающего разработчика таким вещам, чтоб мол пользуй тока print, он проще.
Вместо того чтобы хотя бы в кратце объяснить область применения с отсылкой того с чем надо ознакомится чтобы уметь пользоваться дебаггером.

@темы: программирование, бугурт, ёптваюмать, python