The Practical Dev's review of Programming Paradigms and the Procedural Paradox