There are various advantages of procedure oriented programming languages :-
  1. It is good for general purpose programming
  2. We can re-use pieces of code in a program without writing them again, by the virtue of method calling.
  3. We can structure a program based on these methods and have a cleaner and more maintainable code when compared to the languages it succeeded (e.g Assembly language).

Some common disadvantages of procedural languages are :-
  1. Data is exposed to whole program at once, so there is no security of data available.
  2. Since the focus is on the instructions, it is rather difficult to relate to real world objects and in transition some real world problems.
  3. There is no hierarchy in code. (It is a very big problem, trust me)
These and many more disadvantages combined led way to a new imperative programming paradigm, i.e, Object oriented programming.