budden писал(а):
Подсветка реально нужна для того, чтобы отличать строковые литералы и комментарии от остального текста.
вот этого, пожалуй, в BBCB немножко не хватает. да и то настолько некритично, что мне даже возиться лень. ;-) в принципе, можно научить магическое дополнение к редактору их выделять. сейчас магия комментарии автоматически курсивом делает, например.
budden писал(а):
Ну может быть ещё нужно подсвечивать ошибки, которые среда разработки сразу видит. Сейчас пишу на Питоне и среда очень помогает - видит ошибки типизации до того, как я успел запустить программу.
а вот тут мне нравится, что CP2 заканчивает компилировать быстее, чем я успеваю кнопку отпустить. так что для подобных проверок я просто компилирую исходник, да и всё.
budden писал(а):
Бинарный формат исходников - нужно же ещё ветки сливать.
а у советской кроме дифалки ещё и мержилка есть. опять же: всё внутри BBCB, так что мержилка может красиво отметить конфликты, по желанию отметить все изменения, и всё такое. как по мне — удобней, чем внешние инструменты, которые о документах BBCB ничего не знают.
budden писал(а):
Это уже, извини, паталогический велосипедизм. Да, чужие библиотеки зачастую плохие, но в них всё же вложено столько лет труда, сколько ты заведомо не проживёшь.
мой личный многолетний опыт показывает, что если библиотека большая и сложная — то на то, чтобы разобраться с её API времени уходит не меньше, чем на реализацию нужной её части с нуля. а если маленькая и простая — то и тем более я лучше сам сделаю, чем тащить дополнительную зависимость.
исключения — это штуки типа OpenAL для звука, всякие там декодеры аудиовидеофайлов, и подобное: тут мне тупо знания математики не хватает, чтобы сходу самому напилить. ну, или дурацкие штуки типа SSL/TLS, которые лопнешь сам реализовывать.
велосипедизм, конечно, я не спорю. но я ж и не скрываю, что люблю велосипедить. ;-)
budden писал(а):
> да нет, он precise как раз. за исключением стека
Точный за исключением стека - это как "немножко беременна".
ну как сказать. это значит, что вся необходимая низкоуровневая механика и реализована, и работает, и используется. а сделать точный сборщик по стеку при наличии колбэков из чужого кода в общем случае просто невозможно. разве что заниматься постоянным переключением стеков при вызове библиотек ОС и колбэков из этих библиотек — что, как по мне, не особо осмысленно, и выделки не стоит. на самом деле «консервативность по стеку» совершенно не страшна в силу отсутствия в оберонах такой штуки, как interior pointers. то есть, ложных срабатываний исчезающе мало: я ни разу с такой проблемой ещё не сталкивался.
budden писал(а):
https://dzen.ru/video/watch/635aeb4884afe060a954f50e
право, это
очень синтетический пример. не то чтобы этого не могло случиться — но вероятность очень мала. в нормально написаном коде, который не проводит всё время внутри одной процедуры, выделяя там вот такое — она где-то в районе нуля. я даже в D на это не наступал за десять с лишком лет — а в D всё ещё хуже, потому что там разрешены interior pointers.
и да, в A2 будет точно та же проблема, если использовать её как процесс поверх уже существующей ОС. потому что точно по тем же причинам организовать стабильный и работающий в любых условиях сканер стека при наличии третьей стороны, которая может модифицировать стек по неизвестным правилам, невозможно. при таких раскладах я A2 уж точно использовать не рискну, если не на bare metal. ;-)
budden писал(а):
Если пользоваться только своим кодом, то так можно попробовать.
одна из причин, по которым я предпочитаю свои велосипеды. ;-)
budden писал(а):
Я с сомнением отношусь к программисту, который заявляет, что отладчик не нужен вообще и что его можно заменить другими средствами без ущерба.
интерактивный отладчик, это важно. живой post-mortem дамп — как окно трапа в BBCB — это тоже отладчик. только не интерактивный: в том смысле, что программа уже умерла, повзаимодействовать с ней не выйдет, только исследовать трупик. но это тоже отладка.
budden писал(а):
Отладчик нужен не только для поиска своих ошибок, но и для изучения чужого кода. Как пример, я нашёл одну ошибку в компиляторе A2, только благодаря пошаговому отладчику.
а здесь мне вполне достаточно логов (ну, и HALT-ов в стратегических местах). собственно, именно так я с кодом BBCB и разбирался: усыпал нужные места логами — и смотрю. единственно что — сделал отдельный логер в консоль, потому что лог в окно BBCB не шибко удобен для подобных целей.
собственно, я не только с BBCB так разбирался, но и с разными проектами на разных языках, разной сложности и размера. не то чтобы это сильно отличалось от интерактивной отладки, на самом деле: процесс-то тот же самый. тоже в нужных местах смотрим на состояние программы. и тут обероны опять выигрывают тупо за счёт скорости компиляции: вставить логирование, перекомпилировать и запустить не медленней, чем поставить брэйкпоинт и потом руками нужные переменные напечатать.
вообще, вопрос привычки, наверное. я в своё время писал на турбо-паскале и дельфи, там использовал интерактивный отладчик. а потом стал писать на дельфи не используя среду — и стало проще логов напихать, а не среду раскочегаривать каждый раз. а потом и привык к логам. а gdb вообще произведение внеземного разума, предназначеное для того, чтобы человеков сошли с ума. точно логи лучше. ;-)
budden писал(а):
Как и большинство программистов в мире.
ну, если бы я смотрел на то, что делают большинство программистов в мире, то я бы точно не занимался BBCB. ;-)