Object Oriented Programming Issues
There are a number of errors that programmers can make when they are using an object oriented programming languages. One example of this is looking at the type of object instead of the membership it is associated with. When this happens, the advantages of polymorphism and inheritance are weakened.
This is just one of the many issues a programmer may face when trying to create an application with an object oriented programming approach. One characteristic of OOP is that it supports what is called code centrality. Code centrality is connected to inheritance. Many critics point out that code centrality makes the code more expensive to maintain.
The costs involved with maintaining code can become high with large applications are involved. If there is a problem at higher levels of the system, this could lead to serious problems. The information technology industry is one that has high turnovers, and new employees will not be as familiar with the code. Some developers who are maintaining lower level classes have been known to avoid make changes in the code in order to correct a bug. These developers may ask someone else to fix the issue. However, code centrality can be obtained with techniques which are secure. Another thing that many critics point out about OOP is that lists of exclusive options may not match changes that occur within the real world.
However, those that support OOP respond that techniques like "composition" can help them solve many of these problems. Despite this, some say that the composition technique resembles network data structures, and it may not be a good alternative. Another way that this can be avoided is to look at only the specific objects that are available, and model relationships among them. It should be noted that there could be complications between inheritance and polymorphism. Many critics of OOP claim that using the relational model is better because it has a mathematical structure which is based on relational calculus and predicate calculus. In contrast, OOP does not have a structure which is based on mathematical models.
It has also been said that object oriented programming resembles the navigational database systems that were used during the 1960s. These people claim that the relational database is merely a replacement. However, this was not necessarily the intentions of those who developed OOP. It is likely that relational database modeling is based on premises which are different from those that OOP is based on. In any event, there are connections between the two because relational database tables are used with OOP models. Many people have their own opinions about the roles that these two concepts play.
Some critics claim that OOP has lead to the rise of copying which is not necessary, while others claim just the opposite. Another issue that is seen in object oriented programming is called an impedance mismatch. This will occur between the relational database and the OOP. It will occur when the scale and emphasis among operations performed by databases and objects are different. Database transactions tend to be much larger than object oriented programming objects. While databases can be useful when it comes to storing information among objects, the data related to the objects should only be stored once data has been summarized and collected.
The representation of an object should never be added to a database. Some critics argue that because the objects are small, it doesn’t make much sense for OOP to be so complex. Supporters will often respond by saying that there is no performance overhead which is created by object oriented programming. They will go on to say that every domain will be modelled independently of the others. The scale of the architecture will be dependent on the information that must be stored within the database. Many critics will focus on the connections between the database schemas, and they will assume that duplication demonstrates a conflict.
While there may be some issues with object oriented programming, the same can be said for subject oriented programming. The paradigm that is used will be dependent on the needs of the person that is using it. While OOP may be a better approach in some situations, it may not be the best approach in other.