Talk:Object-based language: Difference between revisions

Content deleted Content added
Hierarchy of object-based languages: JavaScript has inheritance
Implementing WP:PIQA (Task 26)
 
(4 intermediate revisions by 4 users not shown)
Line 1:
{{Talk header}}
{{WikiProject Computing|class=|importance=}}
{{WikiProject banner shell|class=|
{{findsourcesnotice||OR "object-based programming language"}}
{{WikiProject Computing|class=|importance=}}
}}
 
== Merge proposal ==
Line 17 ⟶ 19:
::::--[[User:Hro%C3%B0ulf|Hroðulf]] (or Hrothulf) ([[User talk:Hro%C3%B0ulf|Talk]]) 22:18, 23 March 2015 (UTC)
:::::Forget it. I'm not reverting your edit and it's not worth my time to argue with you. I have better things to do and I have enough sources of aggravation in my life. It's why I don't edit OO articles anymore. --[[User:MadScientistX11|MadScientistX11]] ([[User talk:MadScientistX11|talk]]) 22:56, 23 March 2015 (UTC)
Without MadScientistX11's input I fear we will lack some rigour. Let's do our best without him. The last sentence of paragraph 2 says that early versions of Ada, Visual Basic (VB) and JavaScript "lack polymorphism and inheritance." I think this is one place where we have gone off track. JavaScript does have inheritance, and as far as I can tell, ad hoc polymorphism. I don't know enough about Ada or VB to say if the sentence is correct about them. Let's remove JavaScript from the list in paragraph 2. -- [[User:Hro%C3%B0ulf|Hroðulf]] (or Hrothulf) ([[User talk:Hro%C3%B0ulf|Talk]]) 12:02, 24 March 2015 (UTC)
:Wegner's 1987 OOPSLA paper (link above) says (about prototypes of the kind JavaScript uses):
::''languages with classless objects are object-based but not object-oriented.
:What was his reason for saying this, and did it become a widely held view?
:The paper also chooses to classify classless delegation as different from inheritance (see figure 2, page 173), which would again rule JavaScript as object-based, as object orientation requires inheritance.
:By contrast, the SELF paper (Ungar and Smith), first presented at the same OOPSLA, describes inheritance a little differently([http://pages.cs.wisc.edu/~cymen/misc/interests/selfPower.pdf link to 1991 update preprint]):
::''Prototypes combine inheritance and instantiation to provide a framework that is simpler and more flexible than most object-oriented languages.'' (abstract)
:This difference may simply be a result of Wegner not yet being aware of the way SELF could use prototypes to implement inheritance rather than mere 'delegation', though I am not clear in my own mind of the distinction Ungar and Smith intended to make between delegation and (classless) inheritance.
:How best can we represent this from a 21st century perspective?
:--[[User:Hro%C3%B0ulf|Hroðulf]] (or Hrothulf) ([[User talk:Hro%C3%B0ulf|Talk]]) 14:10, 23 April 2015 (UTC)
 
== Citations for the definition itself? ==
 
At the moment the whole article seems premised on an original definition. There is plenty of literature that describes languages without inheritance or subtyping as "object-oriented". [[Special:Contributions/124.168.74.249|124.168.74.249]] ([[User talk:124.168.74.249|talk]]) 13:31, 28 April 2017 (UTC)
 
:I'll agree. There doesn't seem to be any actual (academic) distinction. Object Orientated Programming (OOP) is itself is a very poorly defined concept, so it should come as no surprise that there is not a clear distinction between languages which are Object-Oriented and Object-Based. (I'm not sure what value could be gained by making such a distinction anyway.) We could cherry-pick articles to make a case for whatever definition we wanted, of course, but that's dishonest. Really, this seems to mostly have been MadScientistX11's somewhat uninformed opinion. The current thinking is that prototypal OO, like JavaScript uses, is a superset of classical OO. It wouldn't make sense, then, to call JavaScript "object-based" by his own criteria.
:This should probably just redirect to [[Object-oriented programming]]. [[Special:Contributions/76.190.231.25|76.190.231.25]] ([[User talk:76.190.231.25|talk]]) 15:51, 7 July 2022 (UTC)