Talk:Object-oriented programming

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing / CompSci (Rated C-class, Mid-importance)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 Mid  This article has been rated as Mid-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Computer science (marked as Top-importance).
 

Find sources: "object-oriented" – news · newspapers · books · scholar · HighBeam · JSTOR · free images · free news sources · The Wikipedia Library · NYT · WP reference

Criticism on the Criticism Section[edit]

On that section, it was mentioned the problems with OOP. However, no one suggested the appropriate alternative to it. It was easy to criticize, but impossible to propose viable alternatives, therefore i see no purpose on the existence of that section (as in: waste of time reading it).

"Code gallery" section[edit]

Removed completely misleading and bogus non-example of OOP from the so called "Code gallery" section. It was a complete mess, the only member of the "gallery", written in an unspecified language, doing unspecified things in a manner foreign to OOP. Whatever unspecified purpose it might have had, the code was perfectly capable of crippling anyone's grasp at OOP for a considerable amount of learning time. Until a less harmful example is found, I think the article is better off without it for the time being.

JavaScript has full OOP[edit]

Languages with abstract data type support which may be used to resemble OO programming, but without all features of object-orientation. This includes object-based and prototype-based languages. Examples: Modula-2, Pliant, CLU, JavaScript, Lua.

This isn't right. JavaScript has all the features of OOP (encapsulation, local state variables, message-passing and inheritance). 219.88.183.88 (talk) 08:05, 17 May 2016 (UTC)

Bump? 125.236.176.112 (talk) 23:31, 18 June 2016 (UTC)
Are you supposed to bump comments on talk pages in Wikipedia? 125.236.176.112 (talk) 08:32, 24 June 2016 (UTC)
No. Adding to it is supposed to bring it back to attention, as you have done. --A D Monroe III (talk) 16:14, 24 June 2016 (UTC)

As I see it, the issue is in the reasoning behind the 5 described "distinctions" of OO languages. JavaScript is famous for being prototype-based OO. This is less "pure" than the first "distinction". I agree that the wording used could imply that this difference in how inheritance is done means it's less that fully OO. To some OO purists, this difference is significant. To me, I find that hard to justify.

I'd suggest combining the last three "distinctions" into a single group that says they support OO functionality using non-pure OO techniques, or some similar wording. --A D Monroe III (talk) 16:40, 24 June 2016 (UTC)

Norwegian invention[edit]

Tried adding this to the Category: Norwegian inventions.

This change was reverted saying it was a "good faith edit" with no sources. Source no. 15 states explicitly how "The formal programming concept of objects was introduced in the mid-1960s with Simula 67, a major revision of Simula I, a programming language designed for discrete event simulation, created by Ole-Johan Dahl and Kristen Nygaard of the Norwegian Computing Center in Oslo.[15]".

The article on Simula also mentions it as the first OOP, not to mention this article here:

http://web.eecs.utk.edu/~huangj/CS302S04/notes/oo-intro.html

The list of Norwegian inventions is to say the least, undeservedly short, with no mention of MVC, OOP, The Søderberg Electrode, AVR Atmel and Abelian Groups, which is why I added these articles to the category today. — Preceding unsigned comment added by Tcarisland (talkcontribs) 20:43, 9 June 2016 (UTC)

So add the material that supports the category directly to the article with citation(s) from reliable source(s). Categories must be supported by the article's verifiable content. Toddst1 (talk) 20:46, 9 June 2016 (UTC)
The material was already in place in the article, no further need to reference the exact same assertion. — Preceding unsigned comment added by ‎ Tcarisland (talkcontribs) 9 June 2016
The article says "Xerox PARC (by Alan Kay and others) in the 1970s, introduced the term object-oriented programming" yet a new editor is insisting Object-oriented programming is a norwegian invention and is repeatedly adding it to that category. Unless this can be cleared up with verifiable content in the article, the category should not remain. Besides, the citation you reference, doesn't even include the word "object" so it clearly fails verification. Toddst1 (talk) 21:00, 9 June 2016 (UTC)
The article also states that "The formal programming concept of objects was introduced in the mid-1960s with Simula 67", making it a minor semantic detail. — Preceding unsigned comment added by Tcarisland (talkcontribs) 21:04, 9 June 2016 (UTC)
And that statement fails verification. The category is not verifiably applicable to this article and conflicts with the content. Continuing to add it is disruptive. If the article can Verifiably directly support it then it can be added back. Toddst1 (talk) 21:06, 9 June 2016 (UTC)
How does an article from the "IEEE Annals of the History of Computing" fail verification? The article explicitly states how Simula introduced the concept of objects and classes and object-oriented modelling (hence the name Simula - simulation language or modelling language). I also added Ole Johan Dahls own article from 2001 describing the development of their object oriented language in the mid 60s, i.e. several years before Alan Kay. Also worth mentioning how one of the largest OOP-languages today - C++, is basically just a mix of C and Simula (from the man himself: http://www.stroustrup.com/gillies.htm), making Simula far more influential than Smalltalk as an OOP. — Preceding unsigned comment added by Tcarisland (talkcontribs) 21:40, 9 June 2016 (UTC)
You have not yet provided a reason for why any of both articles referenced are marked as "not in citation given", did you just do a quick "ctrl + f" completely disregarding the fact that one of the documents was a scanned document and not a text document? BOTH articles mention how SIMULA had classes, objects and inheritance. One article contains the line "The example shows that the idea of data objects with associated operators was under way already in 1965." while the other article opens with: "Among other things, SIMULA introduced important object-oriented programming concepts like classes and objects, inheritance, and dynamic binding.". Please provide further reasons why any of those two articles should marked as failing verification. The example you mentioned with Alan Kay, (the inventor of Smalltalk) almost a decade later is hardly a reason to question the role of SIMULA as the first OOP. SIMULA is already listed as a Norwegian invention and the article about SIMULA mentions it as the first OOP as early as the mid 60s, a time when digital computers were only for the select few. Tcarisland (talk) 23:35, 12 June 2016 (UTC)
I agree OO is Norwegian invention via Simula per sources. The name came later -- not significant. --A D Monroe III (talk) 16:07, 24 June 2016 (UTC)
Specifically, it is on page 3 of "The Birth of Object Orientation: the Simula Languages" where Ole-Johan Dahl states, "The example shows that the idea of data objects with associated operators was under way already in 1965." (That was easily found using Ctrl+F.)
And on page 32 of "Compiling SIMULA: A Historical Study of Technological Genesis", Jan Rune Holmevik very clearly discusses objects and classes in Simula.
I also added two more sources referring to Simula being the original object-oriented language, including page numbers and quotes.
Now we have four. Although unnecessary, maybe that will put this issue to rest. 142.163.159.170 (talk) 22:25, 1 July 2016 (UTC)

External links modified[edit]

Hello fellow Wikipedians,

I have just modified one external link on Object-oriented programming. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at {{Sourcecheck}}).

Question? Archived sources still need to be checked

Cheers.—InternetArchiveBot (Report bug) 00:06, 21 July 2016 (UTC)

Basic[edit]

Isn't a key feature of OOP that the programmer can define his/her own data types, which combine data types that come with the language? For example, one could define the object Customer, with includes ID (integer), Name (alphabetic), ItemPurchased (numeric array), ItemNo (integer), ItemCost (decimal numeric array), AccountBalance (decimal numeric, scalar), and even other objects already defined. 173.90.52.211 (talk) 12:02, 24 August 2016 (UTC)