Здравствуйте, VladD2, Вы писали:
VD>А какой смысл отказываться от отладчика при отладке ошибок в новом коде? Не, я конечно понимаю, что если ошибок нет, то нет нужны и в отладчике. Но если они есть, то что?
Не знаю может тут психология, но если пишешь так чтобы обходится без отладчика, то и нужды в нем практически не возникает. Хотя конечно не только психология, тетсы в таком стиле работы обязательны. Да и я как матросы выше упиратся не буду и если нужно без проблем использую отладчик.
Ошибки конечно бывает, но по моему тесты (еще очень большой плюс REPL) ловят их быстрее и надежнее отладчика.
Re[9]: Каким отладчиком пользовались разработчики Kx Systems
T>>DSL в своей работе ты не используешь. T>>Молодец. Тешь себя сознанием собственной крутости и дальше. VD>Я балдею от твоего самомнения. VD>Ты бы сначала узнал по подробнее что и зачем используют твои оппоненты, а потом бы домыслы свои высказывал (а лучше держал бы их при себе). VD>eao197 с ДСЛ-ями знаком точно не по наслышке. Он разработал систему кросплатформной сборки проектов на Руби. Причем эта система реализована в виде встроенного в Руби ДСЛ-я.
Ух ты! Да ты что! Вот это да! Вот это настоящий программистский подвиг!
"Был неправ, вспылил. Раскаиваюсь, прошу разрешения загладить, искупить."
Это он, по-моим расчётам, положил на это чудо не менее двух или трёх недель.
У меня на .BAT файлах (ну, CMD — под OS/2) это столько и заняло — две недели. На тикле вдвое быстрее.
VD>Что до вопроса об отладчиках и отладкой логированием, то лично я считаю отладчик эдаким логом на стройдах. С его помощь можно все тоже самое что и с помощью логов, только не над на каждый чих перекомпилировать и перезапускать отлаживаемую программу, а стало быть можно выполнять свою работу во много раз быстрее.
Причём здесь отладка логами?
VD>Так что бравада тем, что тебе не нужен отладчик является просто констатацией факта — ты не умеешь ускорить отладку программ.
Зачем мне ускорять отладку программ на Си, если я могу взять OCaml без отладчика и всё равно оказаться быстрей?
Неужто непонятно такое простое соображение?
VD>Есть много людей знающих толк в отладке логированием, но предпочитающих отладчики для многих задач. Конечно иногда логирование является единственным подходящим способом (нет отладчика, отладчик влияет на работу приложения и т.п.). Но это именно что исключения.
Закон больших чисел.
Программистов много, среди них обязательно окажется много кого угодно. И вот таких вот удивительных людей тоже.
Ориентироваться же надо на лучших. Например, на разработчиков kdb.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[11]: Каким отладчиком пользовались разработчики Kx System
T>>Тогда чего ты насчёт необходимости отладчика упираешься? T>>Про "меньше времени на отладку" знаешь, про отладчик нет ни в одном из твоих отчётов про DSL. Я думаю, что ты осознаешь, во что бы тебе обошёлся отладчик для каждого из языков. VD>Прикинь, есть люди с разными мнениями. А твое мнение не всегда бывает правильным. VD>Вот такие дела.
(самомнение на 11)
Ну, ты понял насчёт правильности мнения, да?
(самомнение на 5)
VD>Любой кто пытался отладить парсер созданный с помощью Яка поймет, что отладчик очень не помешал бы. А вед казалось бы классический пример ДСЛ-я. И логами отлаживать можно...
Поэтому не надо использовать Java и не надо использовать генераторы разборщиков. Обе эти вещи относятся к 90-м года двадцатого века.
T>>У меня в голове не укладывается, как после всего этого ещё можно заикаться об обязательности отладчика. О том, что это преимущество. VD>А ты не заметил, что он не говорил об обязательности? VD>Он говорил, о том, что с отладчиком удобнее.
А я говорил, что отладчик — гиря на ногах обоих разработчиков, и пользователей и компиляторщиков.
T>>Преимущество в мощности самого языка. Если на нём можно быть производительным без отладчика, то вот оно, преимущество. Отладчик добавит не сильно. VD>Ну, то есть все же добавит? Значит ты тут все же споришь только о том насколько много добавит?
Новая языковая фича — 10% производительности. Отладчик — 5%.
Я выберу фичу.
VD>Сдается мне, что в средствах разрабоки которые ты используешь хреновые отладчики, вот ты и докажываешь всем окружающим, что они тебе не нужны.
Eclipse — хорошая среда?
VD>В прочем, не нужны — не пользуйся. Что других то за советскую власть агетировать?
А почему бы не поагитировать?
Тем более, что не за советскую власть.
Про дедлайн напомнили, ещё чего интересного разобрали. Даже пошутили удачно по пути.
По-моему, хорошо получилось.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[13]: Каким отладчиком пользовались разработчики Kx System
Здравствуйте, FR, Вы писали:
FR>Не знаю может тут психология, но если пишешь так чтобы обходится без отладчика, то и нужды в нем практически не возникает. Хотя конечно не только психология, тетсы в таком стиле работы обязательны. Да и я как матросы выше упиратся не буду и если нужно без проблем использую отладчик.
Можно подумать, что кто-то пишет код так чтобы без отладчика его и запустить то было нельзя.
FR>Ошибки конечно бывает, но по моему тесты (еще очень большой плюс REPL) ловят их быстрее и надежнее отладчика.
Ну, да. Если пишешь мелкие фитюльки не зависящие от внешних факторов (чужой код, библиотеки, входной поток данных и т.п.), то может так и можно жить. А если проект сложный, то реплы мало что дадут. Тесты это конечно хорошо, но как дополнение к отладчику. Точнее как средство позволяющее систематизировать отладку.
От тебя про реплы слушать вообще смешно (в контексте твоей современной работы на С++).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Каким отладчиком пользовались разработчики Kx System
Здравствуйте, thesz, Вы писали:
T>Ух ты! Да ты что! Вот это да! Вот это настоящий программистский подвиг!
Подвиг, не подвиг, а ты пальцем в небо попал. И все остальные твои слова после этого выглядят совершенно не серьезно.
T>Это он, по-моим расчётам, положил на это чудо не менее двух или трёх недель.
Ну, а что ты о других то судишь? Ты что всю свою работу за первую неделю работы сделал что ли?
T>У меня на .BAT файлах (ну, CMD — под OS/2) это столько и заняло — две недели. На тикле вдвое быстрее.
Ну, ты крут и вообще молодец. Вот только какое это к делу отношение имеет? Ты в очередной раз начал учить отца детопроизводством заниматься. А сейчас отмазки ищешь. Вот только глупо от этого ты выглядеть не перестанешь. Так что в следующий раз когда кода кого-то начнешь учить чему-то, то подумай 100 раз и узнай не зря ли время потратишь.
VD>>Что до вопроса об отладчиках и отладкой логированием, то лично я считаю отладчик эдаким логом на стройдах. С его помощь можно все тоже самое что и с помощью логов, только не над на каждый чих перекомпилировать и перезапускать отлаживаемую программу, а стало быть можно выполнять свою работу во много раз быстрее.
T>Причём здесь отладка логами?
А ты у нас настолько крут, что твои программы отладки не требуют?
VD>>Так что бравада тем, что тебе не нужен отладчик является просто констатацией факта — ты не умеешь ускорить отладку программ.
T>Зачем мне ускорять отладку программ на Си, если я могу взять OCaml без отладчика и всё равно оказаться быстрей?
Ну, да. На ОКамле ведь программы ошибок содержать не могут. Так?
T>Неужто непонятно такое простое соображение?
Понятно. Понты кидаешь. Или и просто ни одной большой программы ни разу в жизни не написал.
Ты вообще хоть раз вносил изменения в программу которую писало 10 человек (или более)?
T>Программистов много, среди них обязательно окажется много кого угодно. И вот таких вот удивительных людей тоже.
T>Ориентироваться же надо на лучших. Например, на разработчиков kdb.
Лучшими их ты назначил?
Да и прежде чем на кого-то ориентироваться неплохо было бы с ними хотя бы познакомиться.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Каким отладчиком пользовались разработчики Kx System
Здравствуйте, VladD2, Вы писали:
VD>А какой смысл отказываться от отладчика при отладке ошибок в новом коде? Не, я конечно понимаю, что если ошибок нет, то нет нужны и в отладчике. Но если они есть, то что?
(смотря какие ошибки)
В ВУЗах на первых курсах широко распространена практика написания кода алгоритма без компьютера — на бумажке, его трассировка и т.д. чтобы развивались исключительно аналитические способности студента. В музыкальных школах (по классу фортепьяно, например) заставляют учить то или иное музыкальное произведение не нажимая клавиш на инструменте (чтобы работала исключительно двигательная память).
То есть я к тому, что отладчик иногда не позволяет человеку взглянуть на само решение проблемы, а все больше и больше привязывает его к конкретному коду.
Но это в бОльшой степени касается алгоритмов. Дейкстра тоже проповедовал программирование без отладчика, если ссылаться на авторитеты.
Здравствуйте, Didro, Вы писали:
D>В ВУЗах на первых курсах широко распространена практика написания кода алгоритма без компьютера — на бумажке, его трассировка и т.д. чтобы развивались исключительно аналитические способности студента.
Ага. А в третьем классе учат складывать и умножать четырехзначные числа в столбик. Означает ли это, что калькулятор — это зло?
D>В музыкальных школах (по классу фортепьяно, например) заставляют учить то или иное музыкальное произведение не нажимая клавиш на инструменте (чтобы работала исключительно двигательная память).
Ага. Еще можно учить ПДД без практики возждения, а потом купить права. Ну, и что?
D>То есть я к тому, что отладчик иногда не позволяет человеку взглянуть на само решение проблемы, а все больше и больше привязывает его к конкретному коду.
Отладчик это инструмент. Если кто-то идиот или неумеха, то он ему конечно не поможет.
D>Но это в бОльшой степени касается алгоритмов. Дейкстра тоже проповедовал программирование без отладчика, если ссылаться на авторитеты.
Ссылаясь надо не забывать цитаты приводить. А то вы так бедных авторитетов переврете, что они после смерти в гробу ворочаться будут .
Вообще, программировать с отладчиком — это само по себе нонсенс. Отлачик средство поиска ошибок, а не средство разработки. Если ошибки — милости просим в отладчик. Нет, так и нужды в нем нет.
В зависимости от разных факторов (квалификации, языка, качества кода, объема кода, сложности задачи) ошибок может быть меньше или больше. Но так чтобы совсем без них, так не бывает. Разве что в программах класса "Здарова, мир".
D>Кстати по отладке (в т.ч. и без отладчика) на DTF был хороший цикл статей: D>Способы отладки приложений , Отладка по крэш-дампам, Протоколирование , Визуальный анализ кода.
Не открывается. Возможно снова РСДН-ДоС.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Каким отладчиком пользовались разработчики Kx System
T>Поэтому не надо использовать Java и не надо использовать генераторы разборщиков. Обе эти вещи относятся к 90-м года двадцатого века.
Все таки надо сказать что-нибудь хорошее про генераторы разборщиков. В ocamlyacc большая часть ошибок вылавливается на этапе компиляции, и, например, для бипа — yacc не создал ни одной проблемы вообще. Даже отладочная печать AST недоделана, поскольку не понадобидась. Уж не знаю, зачем бы там был отладчик.
Re[10]: Каким отладчиком пользовались разработчики Kx System
Здравствуйте, thesz, Вы писали:
T>"Был неправ, вспылил. Раскаиваюсь, прошу разрешения загладить, искупить."
T>Это он, по-моим расчётам, положил на это чудо не менее двух или трёх недель.
T>У меня на .BAT файлах (ну, CMD — под OS/2) это столько и заняло — две недели. На тикле вдвое быстрее.
Угу любая программа пишется хорошим программистом за два дня, в худшем случае за пару недель.
Правда авторы аналогов того что написал eao197 об этом не знают и годами пишут свои scons'ы
T>Зачем мне ускорять отладку программ на Си, если я могу взять OCaml без отладчика и всё равно оказаться быстрей?
Кстати у Ocaml'а очень хороший отладчик, подерживает шагание в обе стороны, правда полноценно работает только в linux. Я линукс на ноут поставил чтобы на него посмотреть, еще установил OcaIDE и до сих пор тащусь
Re[14]: Каким отладчиком пользовались разработчики Kx System
VD>Можно подумать, что кто-то пишет код так чтобы без отладчика его и запустить то было нельзя.
Неоднократно наблюдал
FR>>Ошибки конечно бывает, но по моему тесты (еще очень большой плюс REPL) ловят их быстрее и надежнее отладчика.
VD>Ну, да. Если пишешь мелкие фитюльки не зависящие от внешних факторов (чужой код, библиотеки, входной поток данных и т.п.), то может так и можно жить. А если проект сложный, то реплы мало что дадут. Тесты это конечно хорошо, но как дополнение к отладчику. Точнее как средство позволяющее систематизировать отладку.
Это не зависит от размеров и чужих библиотек.
У меня отладчик дополнение к тестам.
VD>От тебя про реплы слушать вообще смешно (в контексте твоей современной работы на С++).
Ну у меня сейчас вообще весело, просто мечта для ненавистников отладчика, boot-time и NT Native API,
отладка по логам, вместо REPL'а VirtualBox
Re[14]: Каким отладчиком пользовались разработчики Kx System
Здравствуйте, VladD2, Вы писали:
VD>Вообще, программировать с отладчиком — это само по себе нонсенс. Отлачик средство поиска ошибок, а не средство разработки. Если ошибки — милости просим в отладчик. Нет, так и нужды в нем нет.
Вообще идеально отладчик интегрирован в Smalltalk, вот в нем вполне реально писать в отладчике
Re[11]: Каким отладчиком пользовались разработчики Kx System
FR>Кстати у Ocaml'а очень хороший отладчик, подерживает шагание в обе стороны, правда полноценно работает только в linux. Я линукс на ноут поставил чтобы на него посмотреть, еще установил OcaIDE и до сих пор тащусь
Неправославно. Осудительно.
Re[15]: Каким отладчиком пользовались разработчики Kx System
Здравствуйте, FR, Вы писали:
FR>Ну у меня сейчас вообще весело, просто мечта для ненавистников отладчика, boot-time и NT Native API,
Сорри, что вмешиваюсь в ваш спор.
Если не секрет, для каких задач применяете Native API?
Под boot-time подразумеваете boot-execute apps или драйвера?
Спасибо.
Re[14]: Каким отладчиком пользовались разработчики Kx System
Вообщем мы на мой взгляд говорим об одном и том же, поэтому просто приведу цитату Дейкстры, чтоб иллюстрировать данную тему форума.
D>>Но это в бОльшой степени касается алгоритмов. Дейкстра тоже проповедовал программирование без отладчика, если ссылаться на авторитеты. VD>Ссылаясь надо не забывать цитаты приводить. А то вы так бедных авторитетов переврете, что они после смерти в гробу ворочаться будут .
Если отладка – процесс удаления ошибок,
то программирование должно быть процессом их внесения. Э. Дейкстра.
Ни и дальше уже цитата не Дейкстры, но о его трудах:
По мнению Дейкстры, господствующий в компьютерной индустрии подход к программированию как к процессу достижения результата методом проб и ошибок («написать код — протестировать — найти ошибки — исправить — протестировать — …») порочен, поскольку стимулирует программистов не думать над задачей, а писать код, при этом совершенно не гарантирует корректность программ, которая не может быть доказана тестированием в принципе. wiki
Re[16]: Каким отладчиком пользовались разработчики Kx System
Здравствуйте, Lonely Dog, Вы писали:
LD>Если не секрет, для каких задач применяете Native API? LD>Под boot-time подразумеваете boot-execute apps или драйвера? LD>Спасибо.
boot-execute apps, дефрагментатор и оптимизатор реестра.
Re[11]: Каким отладчиком пользовались разработчики Kx System
T>>Ух ты! Да ты что! Вот это да! Вот это настоящий программистский подвиг! VD>Подвиг, не подвиг, а ты пальцем в небо попал. И все остальные твои слова после этого выглядят совершенно не серьезно.
Это всё в глазах наблюдателя.
Я о многом не знаю. Если человек рассуждает, как не имеющий большого опыта в чём-то, то для меня логично предположить, что он в этом опыта не имеет.
Меня поправили, это отлично.
Но вопрос с повестки дня не снят.
Делает ли человек для каждого своего языка отладчики?
Если да, то сколько это у него занимает. Если нет, то чего он требует от других языков того, что сам не делает?
T>>Это он, по-моим расчётам, положил на это чудо не менее двух или трёх недель. VD>Ну, а что ты о других то судишь? Ты что всю свою работу за первую неделю работы сделал что ли? T>>У меня на .BAT файлах (ну, CMD — под OS/2) это столько и заняло — две недели. На тикле вдвое быстрее. VD>Ну, ты крут и вообще молодец. Вот только какое это к делу отношение имеет? Ты в очередной раз начал учить отца детопроизводством заниматься. А сейчас отмазки ищешь. Вот только глупо от этого ты выглядеть не перестанешь. Так что в следующий раз когда кода кого-то начнешь учить чему-то, то подумай 100 раз и узнай не зря ли время потратишь.
Мне совершенно не важно, как я выгляжу в твоих глазах.
Мне важно, чтобы моё соображение было рассмотрено.
VD>>>Что до вопроса об отладчиках и отладкой логированием, то лично я считаю отладчик эдаким логом на стройдах. С его помощь можно все тоже самое что и с помощью логов, только не над на каждый чих перекомпилировать и перезапускать отлаживаемую программу, а стало быть можно выполнять свою работу во много раз быстрее. T>>Причём здесь отладка логами? VD>А ты у нас настолько крут, что твои программы отладки не требуют?
Я REPL пользуюсь. В запущенных случаях пользуюсь trace. Но это не отладка в чистом виде, это промежуточное тестирование.
И да, я стараюсь писать программы так, чтобы ошибок не возникало. Индуктивно, безындексно, типобезопасно и тп.
VD>>>Так что бравада тем, что тебе не нужен отладчик является просто констатацией факта — ты не умеешь ускорить отладку программ. T>>Зачем мне ускорять отладку программ на Си, если я могу взять OCaml без отладчика и всё равно оказаться быстрей? VD>Ну, да. На ОКамле ведь программы ошибок содержать не могут. Так?
Будут. Но меньше на строку кода и строк кода будет меньше.
T>>Неужто непонятно такое простое соображение? VD>Понятно. Понты кидаешь. Или и просто ни одной большой программы ни разу в жизни не написал. VD>Ты вообще хоть раз вносил изменения в программу которую писало 10 человек (или более)?
Да, когда я работал в геймдеве. Справился на отлично. Ускорил многое в полтора раза, а немногое — в пять и более раз.
Поскольку это был C++, делать движок модульным начальство отказывалось, то пришлось пользоваться отладчиком.
Так что я знаю, какая это боль.
T>>Ориентироваться же надо на лучших. Например, на разработчиков kdb. VD>Лучшими их ты назначил?
Не только я. Но ты волен выбрать других, я же только как пример их привёл.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[13]: Каким отладчиком пользовались разработчики Kx System
T>>Поэтому не надо использовать Java и не надо использовать генераторы разборщиков. Обе эти вещи относятся к 90-м года двадцатого века. dmz>Все таки надо сказать что-нибудь хорошее про генераторы разборщиков. В ocamlyacc большая часть ошибок вылавливается на этапе компиляции, и, например, для бипа — yacc не создал ни одной проблемы вообще. Даже отладочная печать AST недоделана, поскольку не понадобидась. Уж не знаю, зачем бы там был отладчик.
Я при описании грамматик обязательно допускаю ошибки.
Чаще всего это выглядит как-то так:
topexpr ::= ... expr
shifts ::= ... topexpr
plusminus ::= ... shifts
muldiv ::= ... plusminus -- вставил недавно, до этого они не встречались.
expr ::= plusminus
Сейчас провёл эксперимент, ghc -fwarn-unused-binds о таком сообщает, просто надо контролировать экспорты.
Ха, буду знать, спасибо!
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[11]: Каким отладчиком пользовались разработчики Kx System
T>>"Был неправ, вспылил. Раскаиваюсь, прошу разрешения загладить, искупить." T>>Это он, по-моим расчётам, положил на это чудо не менее двух или трёх недель. T>>У меня на .BAT файлах (ну, CMD — под OS/2) это столько и заняло — две недели. На тикле вдвое быстрее. FR>Угу любая программа пишется хорошим программистом за два дня, в худшем случае за пару недель. FR>Правда авторы аналогов того что написал eao197 об этом не знают и годами пишут свои scons'ы
Они их пишут годами потому, что 1) тяжело тестировать, 2) надо поддерживать всех на свете, 3) ЯП дурацкий и ещё много причин.
Могу сказать с уверенностью, что больше 5% своего рабочего времени никто на такую ерунду не тратит. За исключением запущенных случаев, но это в очень больших софтверных компаниях.
Я, собственно, справился быстро потому, что упёрся рогом. Потом мы катались на первом сборщике два года. Как раз те самые ~2% рабочего времени.
T>>Зачем мне ускорять отладку программ на Си, если я могу взять OCaml без отладчика и всё равно оказаться быстрей? FR>Кстати у Ocaml'а очень хороший отладчик, подерживает шагание в обе стороны, правда полноценно работает только в linux. Я линукс на ноут поставил чтобы на него посмотреть, еще установил OcaIDE и до сих пор тащусь
Бедный я, бедный.
Худой я, и бледный.
Сижу мод Макосью на первом iMac 17" PPC без интернета и мучаюсь. У vim там даже подсветки синтаксиса нет. Хотя я пользуюсь XCode. Хотя и там подсветки нет.
Всё, перехожу на ноут (придётся купить), ставлю Линукс (придётся ставить), ocaml (придётяс отказаться от современного синтаксиса) и OcaIDE (придётся отказаться от произвольной структуры проекта).
Буду тащиться.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[12]: Каким отладчиком пользовались разработчики Kx System
Здравствуйте, thesz, Вы писали:
T>Это всё в глазах наблюдателя.
Отрадно, что ты это понимаешь. Остается надежда, что этот же аргумент ты когда-нибудь научишься применять к себе.
T>Делает ли человек для каждого своего языка отладчики?
T>Если да, то сколько это у него занимает. Если нет, то чего он требует от других языков того, что сам не делает?
Для каждого не делаю. Т.к. в подавляющем большинстве случаев это декларативные DSL, которые генерят код на другом языке. Отлаживать декларативный DSL можно с помощью обычных отладчиков для host-языков.
В одном из проектов используется специализированный язык для алгоритмической обработки потоков данных (в языке реализованны конструкции if и switch). Пользователи просят средства отладки даже не смотря на то, что программы на этом языке имеют очень небольшой объем и сложность. Пока средства отладки -- это специально добавленная в язык конструкция trace и автономный интерпритатор языка для имитации потоков данных. Со временем, похоже, придется делать пошаговый отладчик.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[12]: Каким отладчиком пользовались разработчики Kx System
Здравствуйте, thesz, Вы писали:
T>>>"Был неправ, вспылил. Раскаиваюсь, прошу разрешения загладить, искупить." T>>>Это он, по-моим расчётам, положил на это чудо не менее двух или трёх недель. T>>>У меня на .BAT файлах (ну, CMD — под OS/2) это столько и заняло — две недели. На тикле вдвое быстрее. FR>>Угу любая программа пишется хорошим программистом за два дня, в худшем случае за пару недель. FR>>Правда авторы аналогов того что написал eao197 об этом не знают и годами пишут свои scons'ы
T>Они их пишут годами потому, что 1) тяжело тестировать, 2) надо поддерживать всех на свете, 3) ЯП дурацкий и ещё много причин.
Жалко, что такая причина как "этими продуктами пользуются" вошла в категорию "еще много причин". Видимо, из-за своей мелочности.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.