Skip to content

Overrated FRQ

Response

In computer science, object oriented programming is one of the most popular types of programming paradigms, with programming languages such as Java, Kotlin, and Perl. But what is object oriented programming? Object oriented programming can be summarized as the use of objects, classes, and polymorphism to model data and real world objects. By giving each object or class attributes as well as attributes, relationships can be modeled and established between different elements data to solve complex problems. However, OOP has often been described as “Silicon Valley’s trillion dollar mistake.” Object oriented programming is overrated within the programming community, as it’s extremely difficult to understand because of it’s innate complexity, requires more time and code to achieve similar results in more traditional paradigms, and may become a pain for developers to maintain and debug.

What exactly is object oriented programming? The summary of OOP given: “the use of objects, classes, and polymorphism to model data and real world objects” would mean nothing to most people. An very common that’s used to introduce OOP is the student example. Imagine you are trying to store the data of different students. These students have different attributes, such as a a name, a unique identifier (ID number), age, gender, and a list of courses they may be taking. All of this data, can be modeled within a class. However, programmers don’t use the class to store specific sets of data. This is where objects come into play - objects are created (instantiated) after these classes, so that a there can be a student that fulfills this outline of data. For example, a student whose name is James, has an ID of 0, age of 16, male, and courses AP Language is an object, while the Student class acts as a blueprint to produce more students. This example is often still confusing for many, creating the infamous a steep learning curve that has caused many people to quit learning programming. By bringing more attention to other programming paradigms, it makes programming a much more approachable space to someone who is new or has less experience.

Another drawback of object oriented programming is its verbosity. In order to get achieve the same results as its counterparts, such a functional paradigm, developers need to spend more time and effort typing what’s commonly referred to as “boilerplate code.” Take the example of a classic Java vs. Python comparison

Java:

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello World");
    }

}

Python:

print("Hello World");

One of the common applications out there, Hello World (which simply outputs “Hello World” to your console) in Java has nearly 5 times more characters than the simple Python application. Now imagine trying to maintain a massive codebase and service with millions of customers - it would be one of the worst decisions that the Silicon Valley has ever made, described as the “trillion dollar mistake”, quite literally costing tech companies trillions of dollars in downtime and maintenance.

Object Oriented Programming (OOP) is a programming paradigm often used to model real world objects, but is often difficult to understand for those new to programming. It is also incredibly verbose, requiring more time and effort to achieve the same results as other paradigms, and can be costly for tech companies due to the amount of maintenance and downtime required. Therefore, object oriented programming can be one of the most overrated programming paradigms within computer science.