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

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

Comments 15

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


fatoff December 23 2024, 18:24:22 UTC
Что-то близкое к компилятору надо взамен. Если не AI tool. Но будет раздражать многих, потому как опция в добавок к diff.

Reply

spamsink December 23 2024, 19:22:24 UTC
Для того, чтобы распознать контекстную замену foo на bar, и именно так и обозначить в описании изменения, подлежащего ревью, вместо листинга сотен строк диффа, где это произошло, ИИ не нужен.

Reply

fatoff December 23 2024, 20:06:09 UTC
ИИ сам распознаёт паттерн, а можно применить фиксированный набор паттернов.

Reply


daedmen December 24 2024, 20:14:08 UTC
Ну семантический дифф ещё в нулевые запилили, https://semanticdiff.com вот сейчас зашел, они наконец сайт обновили, а то он как в web2.0 стиле застрял, так и был. Ну и ещё несколько лет назад поверх tree-sitter-а дифалку сделали https://github.com/afnanenayet/diffsitter , а так же вот ещё https://github.com/Wilfred/difftastic в закладках было

Reply


ext_683473 January 8 2025, 17:44:56 UTC
Еще такое есть:

https://github.com/Wilfred/difftastic

Reply

spamsink January 8 2025, 18:04:45 UTC
Да, спасибо - мне уже доложили выше.

Reply


Leave a comment

Up