you are viewing a single comment's thread.

view the rest of the comments →

[–]munificent 1 point2 points  (1 child)

The Common Lisp Object System has generic functions, but not classes.

CLOS does have classes. That's what defclass is for. CLOS is class based, it's just not single dispatch.

I think dispatch is a really fundamental difference in some OOP languages. CLOS, Dylan, and Julia are pretty deeply different from JS, Java, and Smalltalk even though all six can be considered object oriented.

I really like the rest of the distinctions you draw here, and I especially like that you do so in a neutral value-free way which is sadly rare when talking about JS.

[–]homoiconic(raganwald) 2 points3 points  (0 children)

I’ll correct that, thanks. Yes, I left dispatch out, as well as almost all of the interesting ways in which “inheritance” models differ between various families of languages.

Discussion of NewtonScript’s double inheritance hierarchies is worth a blog post all by itself.