"John Roth" <newsgroups at jhrothjr.com> writes:
> "Ville Vainio" <ville at spammers.com> wrote in message> news:du73c8ofx57.fsf at mozart.cc.tut.fi...> > >>>>> "David" == David M Cook <davecook at nowhere.net> writes:> >> > David> I would call it *pragmatically* implemented OOP. It's not> > David> "proper" as some would see it.> >> > Elaborate?> > As I understand it, there are a number of issues.> > 1. Lack of method polymorphism
[...]
> 1 would be nice at times, but there's no way it's> going to happen in a language that doesn't have> static typing.
Sigh ...
* (defmethod foo ((x integer))
(format t "~&~s is an integer" x))
#<Standard-Method FOO (INTEGER) {480054CD}>
* (defmethod foo ((x string))
(format t "~&~s is a string" x))
#<Standard-Method FOO (STRING) {4800ABED}>
* (foo 2)
2 is an integer
* (foo "hello")
"hello" is a string
The ANSI standard for the _dynamically typed_ language shown above,
which implements the behaviour you claim will "never happen in a
language that doesn't have static typing", is about a decade old. (The
capability itself is at least another decade older.)