Design and development process
As discussed earlier in the important design concepts area of this paper, there are many different processes when developing in Procedural Programming or Object-oriented Programming. I will discuss in this section some of the differences between the development process in Object-oriented Programming and the development process in Procedural Programming.
Development in Object-oriented Programming
When developing in Object-oriented Programming you begin with diagramming and planning out the program. Classes are constructed and data fields are associated to help the developer in the planning process. As the classes are built, functions and methods can be introduced to help in the planning of the program.
Once the classes and objects have been planned out and diagramed the program can begin to take shape in a development environment. It is only after the program has been planned out that this can happen.
Planning out the classes in Object-oriented Programming is an essential part of the development process in Object-oriented Programming. It gives the basic blueprints of the program to work off of when building it. Additionally the planning phase can uncover problems in the design that are easier to fix in the beginning of the process than later during actual development.
Tools for development in Object-oriented Programming
When developing in Object-oriented Programming there are many tools available that will aid the programmer while developing. Many languages have software built to help aid developers while coding in their language.
An example of a good Object-oriented Programming language that uses software to help the developer is JAVA. Java has many different functions and many different software programs that help in the development processes. One of these programs is Eclipse which helps in the development of applications for both the web and others. One of the largest aProcedural Programming markets Android runs applications built on the Eclipse platform.
Eclipse like many other programs has a simple user interface to allow for program creation and testing. For developers who are very familiar with the language and Object-oriented Programming principles, there is a text editor for direct editing of code.
For developers who are not as experienced there is a GUI interface that allows for visual editing of applications. This GUI interface allows the developer to drag and drop elements onto the page where the program resides in a visual fashion. After the program is situated visually it can then be switched to the text editor mode to make adjustments to the code.
The GUI interface adds code to the text editor as elements are droProcedural Programminged onto the page. This makes editing the code much easier for the developer because the code is already written and will only need minor edits to work correctly.
As code is written in either the text editor or GUI interface, developers are able to test their code for errors and to make sure it is functioning as expected. Eclipse will display errors throughout the code if there are any otherwise it will display no errors. Developers can then run the program directly from Eclipse to test functionality and processes that were originally in the programs design.
Eclipse is just one program that assists in development of the Object-oriented Programming language JAVA. There are many other Object-oriented Programming languages and programs that assist in development of Object-oriented Programming languages. Many of the programs are similar and make development in Object-oriented Programming much easier on developers. It also makes developing in other Object-oriented Programming languages much easier to learn because they are similar.
Development in Procedural Programming
When developing in Procedural Programming you start first with the main functions or as some call it the common procedures. This main function is the main goal of the system, or what it is supposed to do for the person using it.
When planning out a program in Procedural Programming it is very different from Object-oriented Programming. In Object-oriented Programming you would plan out the classes and data types. You would also diagram out the program to display how classes should associate with and communicate with each other. In Procedural Programming you plan out the program in a storyboard fashion. The main function is first decided and then broken down into individual more manageable problems that can then be solved.
Procedural Programming focuses on the main goal of a program first, and then identifies the smaller components that will solve the main goal. By following this method of programming it helps developers see the details in the overall picture.
Tools for development in Procedural Programming
Much like Object-oriented Programming there are many different programs that assist developers who use Procedural Programming as their method of choice. Unlike Object-oriented Programming, Procedural Programming can use a much wider array of programs to develop with. The reason for this is because most code in Procedural Programming can be written in anything from Microsoft word to Adobe Dreamweaver.
The top down approach that is used in Procedural Programming makes developing in it very easy for most programs. Developers who use Procedural Programming usually like to have extensive comments and indentations to visually explain what is happening in their sometimes lengthy code. With these desires in mind, programs that are used for Procedural Programming often have these abilities plus many more such as auto completes for coding to help speed up the process.
As mentioned earlier, Adobe Dreamweaver is often a program of choice for many Procedural Programming developers. Dreamweaver has the ability much like Eclipse to develop in text or with a GUI. Depending on what language is being coded will change the user friendliness of the application.
Developers who code with HTML may find using the GUI very useful, where developers who are programming in PHP may find the GUI interface very pointless.
Adobe Dreamweaver like many other programs is simply a software that helps aid in the development process. It can be used in both Object-oriented Programming and Procedural Programming but it is preferred by many Procedural Programming programmers because it has the ability to auto complete and display code in a visually pleasing way.
Advantages and disadvantages
There are many advantages to programming in both Object-oriented Programming and Procedural Programming languages. Many argue the superiority of each method, but both serve their purpose and both have their advantages and disadvantages.
Advantages of Object-oriented Programming
The obvious advantages of using Object-oriented Programming is its reliability and sustainability across different platforms. Developers who have experience programming in JAVA would also be qualified to develop in C# or JQuery which have very similar syntax. The benefit to employers looking for developers with a special area of expertise is that they are able to train with ease developers who have Object-oriented Programming experience vs. the ones who don’t.
Another advantage of Object-oriented Programming is the ease of debugging the code. Errors that may exist during development can usually be tracked to a point of origin and then fixed eliminating other errors throughout the entire program. Having this ability cuts out many hours of debugging and code adjustments that may be necessary with Procedural Programming.
The last advantage I will talk about is the logical structure of Object-oriented Programming. The ability to relate code to real world examples makes the process much easier and more simple to code. Unlike Procedural Programming where you make adjustments as you go, in Object-oriented Programming you have the majority of your program diagrammed out before you ever type out lines of code
Disadvantages of Object-oriented Programming
One disadvantage of Object-oriented Programming is the difficulty of understanding how objects, classes, methods, actions etc relate to each other. Especially for those who are used to a Procedural Programming approach to programming this may be very difficult.
Another disadvantage of Object-oriented Programming is the requirement to have packages and libraries installed for the code to function properly. These libraries are meant to make the coding process much easier for the developer, but for some who prefer to write out line by line their code it could become confusing and difficult to understand.
Advantages of Procedural Programming
One glaring advantage of Procedural Programming is the ability to jump right into coding a program without the need to create any objects or classes. Many programmers prefer this method because they want to be able to write small amounts of code in a short period of time without the need to plan it out. Examples could include simple forms or html pages with basic data displayed.
Another advantage of Procedural Programming is the ability to learn the language easily. Many developers begin their education by copying code from the internet and then pasting it in an application to run. With Object-oriented Programming there is more to do besides just copying and pasting code, but in Procedural Programming that is generally an acceptable way to build a program.
The top down structure is also an advantage for those who prefer to work their way through a program vs. planning the program out before the development process. Many developers who are creative prefer to write their code out like reading a story, discovering and creating along the way.
Disadvantages of Procedural Programming
A major disadvantage of using Procedural Programming as a method of programming is the inability to reuse code throughout the program. Having to rewrite the same type of code many times throughout a program can add to the development cost and time of a project.
Another disadvantage is the difficulty in error checking. In Procedural Programming the code is continuously broken down into smaller manageable pieces until the different problems or functions can be executed. With this approach finding errors in the code becomes more and more difficult as the code gets longer and longer.
The last disadvantage I will speak about is the difficulty for developers who use Procedural Programming as their approach to programming to move from language to language. Without a knowledge of Object-oriented Programming it is very difficult for a developer to be qualified in many languages who use this method. Instead the programmers would be required to learn each new language individually in order to code in it. Object-oriented Programming lays a basic groundwork that is used in hundreds of languages.
Headline: Difference Between OOP and Procedural Programming Language (Part 2)