Edge Rewrite
Jump to content

Talk:Object-oriented programming

Page contents not supported in other languages.
Add topic
From Wikipedia, the free encyclopedia
Latest comment: 12 hours ago by Mathnerd314159 in topic This reads more like a criticisms article

Find sources: Google (books · news · scholar · free images · WP refs· FENS · JSTOR · TWL

We could write this more simply

[edit]

I'm taking an entry-level computer class and I can't make heads or tails of this article. Procedural programming seems simple but I don't know what the teacher means by "objects". 136.223.34.54 (talk) 15:19, 15 April 2024 (UTC)Reply

OOP is complex and vague - it is hard to discuss it concisely. I think the article structure is about as good as it gets. But you are right that the "objects" section does not define objects, I have added a definition. Mathnerd314159 (talk) 21:43, 15 April 2024 (UTC)Reply
انا اول مره 185.133.180.19 (talk) 12:43, 17 April 2024 (UTC)Reply
@136.223.34.54 i agree. this article is written poorly. OOP Is not a complex and vague topic as other says. people make it more complicated than it is. Stevebroshar (talk) 01:07, 25 October 2024 (UTC)Reply
That is a problem with WP. Perhaps articles are written by subject experts who are used to talking with other subject experts and put things in terms that others can't understand.
Or maybe it is that so many make amendments it becomes an unintelligible mess, like C++.
Or maybe it is because of things like C++ and UML that OO itself has become this mess that it should not be. Ian.joyner (talk) 07:27, 25 October 2024 (UTC)Reply
OOP helps organise projects, but in a disciplined and mathematical way. You should read Object-Oriented Software Construction. This is true and clean OO, but not one that simplifies the most sophisticated aspects of OO or programming.
An object, in itself is a self-contained computer that handles one kind of data. Objects interact via messages.
Don't get misled by horrors such as C++ or UML. Ian.joyner (talk) 07:21, 25 October 2024 (UTC)Reply
Yes, this article is largely bloated and plagued by people who clearly dislike the paradigm and would rather spend time talking about its downsides than its actual features and mechanics. SignificantDamage (talk) 01:03, 15 July 2026 (UTC)Reply

The description "based on objects" seems incorrect.

[edit]

This is a historical problem; the definition/description of this paradigm as object-based has nothing to do with OOP itself. Object-oriented programming deals with inheritance; although OOP uses both the object-based and class-based paradigms, this does not make it a type-of (is-a) of OB and CB. The others exist independently of OOP, even if OO uses them.

There are earlier languages ​​already based on objects and classes, for example, CLU. Furthermore, although Barbara Liskov described CLU as an object-oriented programming language, that was merely a syntactic description — the semantic meaning is clearly different from typical OOP. She also made it clear what she personally considered to be an object-oriented sense. But again, she attributed her own interpretation to the concept of OOP. (talk) 15:17, 11 November 2025 (UTC)Reply

So per the article:
  • Bjarne Stroustrup (author of C++) said "OOP does not need inheritance"
  • Go says it is an OOP language despite not having inheritance
  • In the earliest setting, MIT, objects were just "LISP atoms with identified properties (attributes)" - no inheritance.
If you have sources stronger than these that "object oriented programming deals with inheritance", let's see them. Mathnerd314159 (talk) 15:59, 11 November 2025 (UTC)Reply
Yep, you’re right. I used to think object-orientation existed only when inheritance was present. Even the Object (computer science) entry treats OO as involving inheritance, so that entry also needs revision.
But the concepts of class-based programming and object-based programming are not subtypes of OO. Aparentelly, they don’t differ fundamentally from OOP — one simply includes more features than the other, but there’s nothing truly new that would make them a distinct type.
They are only minor variations. Inheritance, for example, would be a better sub-type of OO than the class-based and object-based paradigms. QuantumNinus (talk) 22:44, 11 November 2025 (UTC)Reply

Object is a software entity?

[edit]

Is an object a software entity? If it is, why isn't the object (a runtime/semantic entity) definition something like that?

In the software there are a bunch of concepts like architectures, languages (which the object may or not be), frameworks and so on and the object is being defined as a software entity? This article is using the word "data" which everything computed is data, it isn't being restrict to the main-space (programming language or computer programming).

Also, this article has a definition that is basically equals (but with different words) to the Object-based programming. QuantumNinus (talk) 23:04, 12 June 2026 (UTC)Reply

I think we can blank-and-redirect the page Object-based programming into here, specifically into the "No inheritance" section. Nobody besides Peter Wegner seems to use the term object-based for this type of language, so it can be attributed to him, but it is not a notable concept on its own.
Regarding the definition of object, I see you have modified it several times, I am not sure what is most correct. The typical definition of object is data and behavior, and in practice in formal models of OO this is what is used - an object really is just generic data storage. Identity, state, etc. only appear in specific models (e.g. models of Java). As far as semantic vs. software, in practice objects are a language feature, so they are both a semantic feature of the language and a feature of the compiler/runtime software. Mathnerd314159 (talk) 21:37, 15 June 2026 (UTC)Reply

This reads more like a criticisms article

[edit]

Alan Kay is mentioned 4 times and messages are only mentioned in passing once besides an alan kay quote.

It spends more time talking about what people say is wrong with object orientation than actually discussing what its mechanisms and features are and how they vary in implementation. You won't find such criticisms in the functional programming article. I think this article should be rebuilt from the ground up with an emphasis on Alan Kay's original intents and writings from his Smalltalk V tutorial book, as well as what GoF, The Hillside Group, and other early adopters had to say about it. It should discuss properties like inheritance, polymorphism, code reuse, encapsulation as information hiding, messages and dispatching, and design patterns as they relate to their intent of following coding principles not necessarily adhering to every principle perfectly in OO. SignificantDamage (talk) 01:01, 15 July 2026 (UTC)Reply

Alan Kay Did Not Invent Objects. The lack of Kay reflects Kay's own repeated public disavowal of modern OOP, including his OOPSLA 1997 remark "I made up the term object-oriented, and I can tell you I did not have C++ in mind" and the 2003 email cited in the article. Kay's intent was explicitly not aligned with what became mainstream OOP and so it is not discussed much. Also the "Smalltalk V tutorial book" you mention was published by Digitalk Inc., not authored by Kay - it does not encapsulate his intent.
Regarding criticism, modern commentary skews critical toward OOP. The reason you won't find such criticism in FP is because it is well-liked, although there is substantial discussion of the efficiency issues. In this OOP article, the "Features" section is still far larger than "Popularity and reception" and although criticism is embedded within the feature descriptions it is not the dominant portion. "Rebuil[ding the article] from the ground up" is not an actionable proposal; Wikipedia articles are built from verifiable sources, not restructured on stylistic preference alone. The GoF and Hillside Group are factually not early adopters; the GoF book was published in 1994, roughly two decades after Simula and Smalltalk, and after OOPSLA had already established OOP as mainstream in 1986. All of the topics you mention are already covered in the current article, but attempting relate them to coding principles is historically backwards; these concepts emerged organically through Simula, Smalltalk, and later languages, and were only codified into principles (SOLID, GRASP) decades afterward. Mathnerd314159 (talk) 21:43, 25 July 2026 (UTC)Reply
You say he didn't invent objects and then directly quote him saying he made up the term object oriented. Yes, he regretted it, but he is largely the main person for establishing the terminology and paradigm.
Also, saying functional programming is well-liked, which is why it doesn't have criticisms is dumb, because object oriented is also well-liked. Do the other paradigms such as declarative or functional programming spend half the article talking about their downsides or are those also "well-liked?" I'd argue that fp doesn't have as much criticism because it hasn't had 40 years of mainstream usage to show all of its warts. That's immaterial, but either way, riddling the whole article with criticisms rather than focusing on what it is is just dogmatic and inappropriate for the page.
You say that it needs to be built from verifiable sources but then most of the criticisms are just random dogmatic admonitions.
Rebuilding from the ground is hyperbolic, what I mostly mean is that there is in fact a lot of cruft here that makes the page far larger than it needs to be, and largely doesn't help anyone trying to learn about OOP.
Either way, making the majority of the article criticism based instead of a unique page focused on criticisms of object-oriented programming clutters the page and makes it far more dense than it needs to be. SignificantDamage (talk) 05:05, 26 July 2026 (UTC)Reply
What you suggest about splitting off a unique article is called a WP:POVFORK and is against Wikipedia policy - the policy is that all relevant information should be presented on one page. I would also suggest reading the essay WP:CRIT. Wikipedia is not a textbook and is not intended for people trying to learn about OOP, it is a reference summary. Regarding the statements they are generally from experienced programmers well-versed in the subject matter they are talking about, they are acceptable as sources under WP:SPS. FP and OOP are actually about the same age, they both originated in academic circles. The difference is mainly that Kay popularized OOP early, while FP developed in academia for longer without becoming popular. If you read the blog post I linked, there is some doubt as to whether Kay had any influence on the development of mainstream OOP, or if academia just developed the concept completely independently - and Kay has explicitly disclaimed establishing the mainstream OOP paradigm such as is found in C++. Mathnerd314159 (talk) 22:10, 26 July 2026 (UTC)Reply