wiki:FirstPrinciples/Interfaces

Interfaces

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.


Abstract Data Types are informally defined set of interfaces. Type Classes is more formally defined set of interfaces

Last modified 17 months ago Last modified on Nov 15, 2018, 9:41:53 AM
Note: See TracWiki for help on using the wiki.