Object-oriented programming and procedural programming are two programming paradigms. A programming paradigm is a fundamental style of computer programming, and they differ in the way different elements of the program are represented and how steps for solving problems are defined (Ragel, 2011). The above statements describes two popular ways of defining and solving a problem involving the need for a computer program and are similar in nature but also have some important differences that need to be weighed when choosing which one will be used. The similarities and differences will be discussed in terms of procedural programming modules and objects in relation to; reusability, security (as in hiding code), and the passing of data within the program itself.
A Procedural programming module is function, procedure, subprogram or subroutine within a program designed for a specific purpose and only does that one job (Haas, 2011). For outside programmers looking in these are relatively easy to follow and decipher when looked into. Procedural programming modules are most often written in the order they are intended to be executed with the exception of those called upon again later in the program. Modules of this type are good for reuse in the original program because they were designed for that program, but they are not very good for reuse in other programs without heavy modification because they were designed to do a specific task for a specific program, and that does not leave much room for flexibility. Variables can be declared as local within a module and will be exclusive to that module. There is also the ability to create local variables within a given module but you have to remember to pass the correct data in and out using global variables, and they must be declared properly to work right. Considering the preceding, the use of procedural programming modules is an excellent approach to many programming problems