Прочитал срач по поводу необходимости отладчика в ББ:
viewtopic.php?f=1&t=6236Поделюсь своим опытом.
Мне СИЛЬНО повезло, что пришлось работать с перфокартами и в отсутствии интерактивных средств.
Отладкой вполне занимались и на перфокартах.
Элементарно, Ватсон!
Расставляешь принты в нужных местах - это и есть контрольные точки.
Они сразу и выводят значения проверяемых переменных
Это и есть обучение отладке - отладчик здесь АБСОЛЮТНО не нужен!
Мне в ту пору не пришло в голову, что вместе с принтами можно ставить сразу и проверяющий код типа assert().
Не было в PL/1 assert()...
Потом перешли на дисплеи. Как сейчас помню, работали в ДУВЗ - Диалоговый Удаленный Ввод Заданий.
Мой мозг не чужд рефлексии, и заметил еще тогда:
- программисты (и я в том числе) стали гораздо меньше анализировать код при наличии ошибки.
А зачем? Надо просто немного поправить код, где (КАК КАЖЕТСЯ) имеется ошибка, и запустить НА ПРОБУ.
Не угадали? Не беда, попробуем новую догадку...
Когда появились интегрированные среды, программы стали просто писать сразу в редакторе - без предварительного осмысления, чего и в каком порядке, собственно, писать-то требуется.
Наблюдаю у студентов повсеместно.
Возможно, парное программирование и возникло,
как попытка хоть в какой-то степени нивелировать это отрицательное влияние инструмента на программиста.
Если говорить конкретно об отладчике, то мне он фактически не нужен.
Имею интересный опыт, когда отладчик в IDE фактически вредил, а не помогал.
Писал я тогда в Турбо С++ 2.0...
В отладочном режиме трансляции все прекрасно работало и значения всех переменных были вполне корректны.
Проверял и по шагам, и по контрольным точкам...
Делаю релиз - не работает.
Причем, при запуске из-под среды - работает, а без нее - нет.
Мне потребовался независимый отладчик, причем отлаживал я покомандно.
Обнаружил хитрую ошибку, которая в исходном коде была не видна.
ИМХО, обучать школьников инструменту отладки - не нужно.
Вредно.
Методике отладки - обучать обязательно.