Interfaces are the most important aspect in programming. It is a formal way to define what it takes to be a .....
It has very deep connection to Life Itself. Life is using atoms as an Interface - proteins and enzymes are made out of atoms by the process of evolution. What is even more wonderful, it that atoms, as an interface, forms very real Abstraction Barrier - Life have no idea what they are and what is inside of atoms (it is irrelevant, Life just is).
Specifying (defining) and following interfaces is the core of programming. It is deeper and more universal than any generics or abstract classes - it is the Universal principle, it is everything.
This notion is related to the notion of Composability which is the basis of everything complex. Closures which follow (implement) the same interface are compostable.
This is the principle behind UNIX philosophy, which is about composable (through pipes) specialized processes which follow the same simple interface of text streams.