OOP is probably the most used programming paradigm in today's software design. My question is -- what other paradigm(s) can compete with it and can stand in the place of oop? To clarify that question, I'm not asking about what other paradigms there are. There are many of them and I'd like to know which one:
- Has been used in practice, not only in theory.
- Can compete with oop, so it can be used in a large project without or with minimum of pain.
- Can be used to develop a desktop app with business logic, databases, and so on.
- Is not used with companion of oop, but can replace oop.
And if there is any, what are the pros/cons of it, why it is better/worse than oop, what languages are the best to use it, what about using it in popular languages, has it any design patterns, and can it totally replace oop?