I consider "github" to be a whole gamut of technologies based on "diff".
"Github" is a production version of "diff".
Github could use "diff" in a bigger way. Instead of diff'ing lines of code, it should diff layers of design. (Which might be blocks of code).
Our PLs[1] are just glorified text editors.
A lot of what we think about and build into PLs is DRY.[2]
RY[3] is what we want, but we waste brain power on DRY.
Machines could detect DRY for us. And refactor the code/design/etc. for us automagically.
Github could include technology to figure out DRY.
Our editors could figure out repeated lumps of text and make a golden copy for us.
The editor could show repeated lumps of source in gray and automagically update the golden copy when we edit the gray parts.
[1] PL means Programming Language
[2] DRY means Don’t Repeat Yourself
[3] RY means Repeat Yourself