Что-то в лесу сдохло

Dec 20, 2024 10:11

Народ задумывается, чем бы более умным заменить diff:

https://stackoverflow.blog/2024/12/20/this-developer-tool-is-40-years-old-can-it-be-improved/

work

Leave a comment

ak_47 December 21 2024, 10:17:13 UTC
А разве современный diff всё тот же, что и 40 лет назад? Вроде большинство софта, который доводилось видеть, умеет находить сдвинутые блоки. Некоторые даже пытаются анализировать код на основе знания о языке в файле.

Reply

spamsink December 21 2024, 16:15:43 UTC
Умение находить сдвинутые блоки я видел в ClearCase 30 лет назад, но, видимо, оно было запатентовано, поэтому тогда никто больше так не делал, а потом все забыли - потому что в те времена систем code reviews не было, и умность диффа помогала разве что экономить место в базе, а внешняя память быстро стала дешевая.

Основная проблема не в том, как находить, а как это дело красиво визуализировать.

Reply

ak_47 December 21 2024, 21:55:04 UTC

Основная проблема не в том, как находить, а как это дело красиво визуализировать.

С этим полностью согласен. Давно заметил что качество визуализации и удобство интерфейса - решающие факторы при выборе диффа.

Reply

starshoi December 21 2024, 22:33:45 UTC
Вот. Ты же знаешь, я вырос на всех этих diff, awk, grep и прочем, пальцы до сих пор в командной строке все помнят, хотя активно я этим уже лет 20+ не пользуюсь. Но молодое поколение до сих пор вздрагивает, когда я судорожным сокращением кольцевой мускулатуры выдаю какую-то дикую последовательность команд с правильным результатом.

Но за все эти тяжелые годы я все больше запускал все инструменты из emacs. Я его в середине 80-Х подпилил под себя тоннами лисповского кода и понял, что всегда предпочитал именно оттуда все брать. И именно из-за красивой (для тех времен) визуализации. Так вот, diff в emacs был очень хорош, можно было очень быстро и красиво видеть все различия и быстро их упромысливать.

А вот как сейчас народ всем этим пользуется, я совершенно не представляю. Наши динозавровские техники еще в ходу? Или мы уже тоже как те древние греки, погружаемся в пучину забвения?

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

Reply

spamsink December 22 2024, 01:13:43 UTC
Народ у нас пользуется vimdiff-ом активно. Я предпочитаю tkdiff.

Три системы code review, которые я видел - это CCollab, Perforce Helix Swarm, и GitHub.

Reply

starshoi December 22 2024, 01:24:29 UTC

А, ну тоже визуально. В мое время этого не было, поэтому и emacs.

А code review - это тоже уже после моего активного времени. Когда я начал насаждать этот процесс больше 30 лет назад - этого вроде еще не было, а после этого уже пришло новое поколение, Но я помню, как народ возмушался - "Мой код очень хорош, чего тебе в него лазить". После 2 просмотров и 12 проблем - начали прислушиваться, а потом их уже было не оторвать от возможности покритиковать чужой код.

Но помню уже в последней компании, мой бывший коллега по СТО офису пришел к нам, 20+ лет разработки, ПиЭйчДи в компьютерных науках. Сижу смотрю на его код, где он отправляет клиенту почту про какую-то ситуацию и не проверяет код ошибки. "Фред, надо бы проверить, вдруг почта не дойдет" - "Юра, отстань, это же не твое любимое ядро, и так сойдет"

Reply

spamsink December 22 2024, 02:54:02 UTC
Это называется "в стиле UDP". Автор имеет право, если считает, что и так сойдёт.

Reply

a_quantum December 23 2024, 01:15:32 UTC
Пользуюсь diff в emacs с середины 90-х и по сей день. Не то, чтобы очень часто это делаю, но случается.

Reply

spamsink December 23 2024, 19:56:42 UTC
Ctrl-c v = вещь хорошая, но не для всех version control systems работает.

Reply


Leave a comment

Up