Procedural Programming:
Decide which procedures you want; use the best algorithms you can find.
Modular Programming
Decide which modules you want; partition the program so that data is hidden within modules.
Object-Oriented Programming
Decide which classes you want; provide a full set of operations for each class;make commonality explicit by using inheritance
Generic Programming
Decide which algorithms you want; parameterize them so that they work for a variety of suitable types and data structures.
Decide which procedures you want; use the best algorithms you can find.
Modular Programming
Decide which modules you want; partition the program so that data is hidden within modules.
Object-Oriented Programming
Decide which classes you want; provide a full set of operations for each class;make commonality explicit by using inheritance
Generic Programming
Decide which algorithms you want; parameterize them so that they work for a variety of suitable types and data structures.