Talk:Object-based language

Latest comment: 1 year ago by 76.190.231.25 in topic Citations for the definition itself?

Merge proposal edit

There is currently an article: Object-based that covers the identical topic as this one. I propose Object-based be merged into Object-based language. MadScientistX11 (talk) 22:49, 15 December 2013 (UTC)Reply

Since no one commented in several months I went ahead and did the merge. There was almost nothing worth saving in the Object-based article, it was just a stub but what it did say that was of any merit (e.g. VB is an example of an object-based language) was either in or I incorporated into this article. --MadScientistX11 (talk) 18:19, 28 May 2014 (UTC)Reply

Hierarchy of object-based languages edit

From the article, it is unclear what a "true" object-oriented language is. In the second paragraph, JavaScript is enlisted under object-based languages that are not object-oriented. The fourth paragraph says that prototype-based languages are true object-oriented languages, like JavaScript. What is now true for JavaScript? Is it object-based in the sense that object-based is a hypernym of object-oriented? If so, how can it be a "true" OO language then?--Sae1962 (talk) 11:49, 23 March 2015 (UTC)Reply

That is an excellent point. Some putz edited the article and added Javascript as an OO language. I started to revert the edit but I noticed that there is a lot of (bad, wrong) information out there when you do a Google search that does say javascript is OO. But if you ignore bullshit written by people with agendas and stick to things written by actual experts in OO there is no question. Javascript is object-based not object-oriented. If you presented a paper at OOPSLA that said Javascript was OO they would laugh you off the stage. If it sounds like I'm a bit frustrated I am, there are several people who don't know their OO ass from an OO hole in the ground and should be editing articles on Nicky Manoj or the Back Street boys but end up editing articles like this and I just got tired of dealing with it. By the way none of this means that Javascript isn't "as good" as Java (which of course is OO) just that they are meant for different uses and for the uses that Javascript was meant for I think the designers of the language absolutely made the right call. If you agree with what I'm saying here (not the part about Nicky Manoj, the part about object-based vs. object-oriented) I'll take that as a consensus and when I have some time wade into this one more time and try to clean up the article. --MadScientistX11 (talk) 14:40, 23 March 2015 (UTC)Reply
I think I might be the putz. I am a bit puzzled @MadScientistX11:. Self was presented at OOPSLA, doi:10.1145/38765.38828 (paywalled, so I haven't read it) and it is prototype-based. The prototypes in Javascript aren't as obvious or easy to use, but I am not sure if that is the difference you refer to. What do the experts say? (Apart from Mozilla employees.) --Hroðulf (or Hrothulf) (Talk) 20:34, 23 March 2015 (UTC)Reply
Just because they had papers about Self or Javascript at OOPSLA is totally irrelevant. Most likely the papers were things like "how to layer OO capabilities on top of Self" or "the advantages of using object based vs object oriented language" Or for that matter I know for a fact they had lots of papers at OOPSLA about Lisp-based languages because I co-wrote one of them but clearly Lisp isn't even object based. Peter Wegner is one of the experts I had in mind. Here is a paper of his I found with a 10 second Google search that explains the distinction: http://www.cse.msu.edu/~stire/cse891/wegner.pdf As you can see he classifies languages such as Ada as Object-based and languages such as Smalltalk as object-oriented. --MadScientistX11 (talk) 21:34, 23 March 2015 (UTC)Reply
Why do you say such authors would be laughed off the stage?
Secondly, I would be interested in enumeration of the errors in this edit.
--Hroðulf (or Hrothulf) (Talk) 22:18, 23 March 2015 (UTC)Reply
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. --MadScientistX11 (talk) 22:56, 23 March 2015 (UTC)Reply

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. -- Hroðulf (or Hrothulf) (Talk) 12:02, 24 March 2015 (UTC)Reply

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(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?
--Hroðulf (or Hrothulf) (Talk) 14:10, 23 April 2015 (UTC)Reply

Citations for the definition itself? edit

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". 124.168.74.249 (talk) 13:31, 28 April 2017 (UTC)Reply

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. 76.190.231.25 (talk) 15:51, 7 July 2022 (UTC)Reply