History does not repeat itself, but it recurs in different forms.
In computer science, abstraction is the key to managing complexity.