As many know, the first object-oriented language was Simula. Its goal was to model real systems: assembly lines, transport networks, and banks. Kristen Nygaard and Ole-Johan Dahl created this language in the late 1960s exactly for this purpose.
Today, people often criticize object-oriented programming for too many abstractions. These include bloated class hierarchies and the inheritance mechanism, which can break systems when changes happen.
Functional programming came out of the lambda calculus. Relational databases came out of Codd’s relational algebra. Both started as mathematics and grew languages and engines on top of it.
...