28
7
When I see code-golf entries that knock a few characters off, whittling down the code, I go look at the edit history for a side-by-side diff. See and learn :)
This challenge is to make a program that produces the prettiest animated diffs.
- The input will be any ordered series of text versions.
- The program may be written in any programming language.
- It is allowed that the program limit itself to input data in some specific programming languages.
- The program should not be tuned to the specific input data; the program should be generic and work for any ordered series of text versions.
- For each version in the input there must be a corresponding time in the output animation where the full text of the version is displayed. You must animate the diff between version stages, and all version stages must be present and in order in the output. On these key frames, the version size must be shown and the viewer should understand this is a complete version they are seeing at that point.
- The program may not use any third party code to compute the diffs.
- Syntax highlighting output is optional. If the program colours syntax, it may not use any third party code to do so.
- The output will be an animated GIF.
- The program may use a third party library to author the GIF.
- This is a popularity-contest, so as per the definition of popularity-contest on this site, the entry with the most votes wins.
Here's a simple example script that uses Python's ndiff and Pillow's rudimentary animated GIF support and animates each add and remove step:
Personally, I think this a pretty poor job. It doesn't do syntax highlighting, it doesn't try and move code chunks that get rearranged, it doesn't feel like someone is live editing it, and so on. It also breaks the rules regards showing the size of the input in bytes on key frames, and it uses a third party library to do the diffing. Lots of room for improvement!
And hopefully the popular entries will become useful fun tools for the codegolf.stackexchange.com community too. So its appreciated if the programs are easy for others to get running and use.
1
Comments purged as the extended conversation here seems to be coming to a stop. Discussion about this post can be found on this meta question.
– Doorknob – 2014-09-18T23:34:29.177