One can reuse code without OOP—often by simply copying and pasting.
"Doesn't really take saying for any professional developer, but this approach means that when you find a bug in code, you have to fix it in a dozen places, instead of once."— Anthony Glenwright, product development manager (.NET languages)
|Richard can't seem to grasp the obvious—that you leverage through reuse.—Stephen Russell|
"Richard can't seem to grasp the obvious—that you leverage through reuse. You take all the M$ controls and subclass them into your own framework version. This way, you can add functionality to the control, and when M$ changes them, our classes don't break."—Stephen Russell, programmer (C#)
Efficiency is the stated goal of C-style languages and OOP, but the result is too often the opposite.
"I've been programming for a good few years myself and have often wondered why many programmers now feel that just because they've used OOP techniques that their programming must be good. They don't think about the fact that procedural code performing the same function might be half the size and complexity."—Dave King, senior systems developer (VB)
"Object-oriented design is often the most natural approach to a problem. If one chooses to implement that design using an OOP language is another matter."—Matthias Kronenberger, software developer/computer scientist (C++)
"I have adopted some OO techniques with success, especially those that allow real reusability. However, the verboseness, seriously diminished transparency, and general unwieldiness of the .NET languages are an obstacle to rapid development." —A database developer/consultant (VB6) who preferred to remain anonymous
"Many developers practice a design style that is more 'Class Oriented Programming' than 'Object Oriented Programming.' They don't use any sample business data to develop their object model and data flows. Instead, they start designing elaborate class structures without trying to prove that they are capable of processing the actual data that they will be required to handle."—Phil Corcoran, software engineer (Java)
|My biggest problem with OOP is its lack of integration with the current crop of databases.—Stan Coplan|
"A large part of the problem—especially for smaller projects—lies in the languages used, rather than the overall OOP paradigm. Languages like C++, Visual Basic, and Java force a layer of extra structure and obfuscation on the programmer, which, strictly speaking, has nothing to do with the OOP paradigm."—Jay Osako, freelance software developer, primarily Web (Scheme, recently Python)
"It is silly to rewrite programs from VB6 to .NET (or Java) simply to stay current, but alas, that's what we've been doing since BASIC made its appearance. We're glad for the improvements, but not the added complexity that this last round of languages has introduced.
My biggest problem with OOP is its lack of integration with the current crop of databases. The supposed need for an OOP to SQL mapping layer (object-relational mapping) is absurd."—Stan Coplan, president of a software and multimedia development company (VB.NET, ASP. NET, VB6, C#, Java)
"Simply put: more advanced data structures (e.g., deques, graphs, double linked lists), which improve efficiency and runtime, are most effectively achieved through OOP."—Dave Russell, software engineer (Java)
"I think that C++ has tainted the whole concept [of OOP languages]. This one language is so big and so complex that no one in their right mind would use it for learning OOP. Unfortunately, it's also massively dominant. Java's an improvement, but is still way too complicated."—Dr. Alun J. Carr, Mechanical Engineering Dept., University College Dublin (Tcl/Tk)
"I have observed many, many wasted programmer months, failed projects, and failed companies due to way too much OOP design time and too many layers [and] objects, which just make the systems hard to program, hard to learn, and slower."—Jerry Howard, programmer/consultant (C#)
"The most attractive benefit of OOP is in maintenance, not in efficiency of initial implementation. OOP requires greater effort in the requirements, analysis, and high-level or low-level software design stages. Sadly, the vast majority of programmers don't design or design very poorly. I believe that explains the crummy results for OOP."—Mark Bullock, software QA analyst (Java)
I've begun to wonder whether OOP is simply the latest fad.
"I do not think that in our world of distributed computing OOP has a future at all. Within one computer it is perfect; but it is unacceptable for communication. Consumers process and interpret data the way they like, not the way producers want them to. That's why OOP is going to gradually turn from a universal idea to a niche technology."—Vlad Patryshev, software engineer (Java with generics)
|Classic OO is dead.— Danny Kalev|
"If you look at every standard library that has been added to ISO C++ in the past 10 years, you'll see that classic OO is dead. Virtually all of these libraries are designed according to a different paradigm: generic programming. Get used to thinking in terms of templates, meta-functions, and generics. OO is dead; long live generic programming."—Danny Kalev, independent software engineer (C++)
"OO has lasted too long and it [is] too widespread to be considered a 'fad'. It may be 'misused technology', but that is a separate (and equally incorrect) argument."—Matthew Roberts, PhD student and Lecturer (Haskell)