is java really object oriented? it is more of
a strictly typed language than object oriented
right? or am i mistaken?
-jim
AnonymosX wrote:
> c - process oriented programming
> java - object oriented programming
> lisp - ?
>
From: Pascal Costanza
Subject: Re: what kind on programming is lisp?
Date:
Message-ID: <d0h8i4$phe$1@snic.vub.ac.be>
Jim Newton wrote:
> is java really object oriented? it is more of
> a strictly typed language than object oriented
> right? or am i mistaken?
I would agree with you that Java's static type system turns it almost
into a non-OOP language, but Java is usually considered OOP. Check out
the proceedings of the major OOP conferences of the last decade and
estimate the percentage of papers focused on Java... :(
Pascal
On Fri, 04 Mar 2005 23:23:15 +0100, Jim Newton <·····@rdrop.com> wrote:
> is java really object oriented? it is more of
> a strictly typed language than object oriented
> right? or am i mistaken?
>
> -jim
>
I believe it is normal to distinguish between static OOP languages
and dynamic OOP. Yes, these systems idea of OOP are quite different.
Obviously the possibility of changing a class definition or reordering
a hierarchy go out the window when the classes aren't available at runtime.
So unlike human classes we can't categorize and adapt hierarchies
as we learn more. In a static library it is written in stone.
Not that this is much done in dynamic languages either.
Object orientation in a static language does, however, provide
encapsulation and inheritance.
Important also is polymorphism. (a result of inheritance)
class general { generic print () {} ... };
class special_1 : public general {... print ...};
class special_2 :public general {... print ...};
array gen of general..
func () { itterate cur on gen: cur->print().. };
This gets around many of the hurdles of static typing without sacrificeing
type safety.
(I have taken some liberties with the language to get the point better
across.)
I mentioned earlier Norvig's discussion on software patterns.
http://norvig.com/design-patterns/ppframe.htm
Note in particular:
Design patterns in dynamic languages and
Design patterns in Dylan and Lisp
So object orientation in static languages tends to lead to far more
patterns
and idioms. This leads to repetitious code. Of course a Java fan would
probably
see this *sameness* as a virtue rather than a waste of time :)
--
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
John Thingstad wrote:
> Important also is polymorphism. (a result of inheritance)
No, it's a result of subtyping (like Java interfaces). Inheritance lets
you import white-box code from a class that's typically (in OCaml IIRC
it doesn't have to be) a supertype. Java & Co mix these up, well...
On Mon, 07 Mar 2005 23:47:33 -0600, Ulrich Hobelmann <···········@web.de>
wrote:
> John Thingstad wrote:
>> Important also is polymorphism. (a result of inheritance)
>
> No, it's a result of subtyping (like Java interfaces). Inheritance lets
> you import white-box code from a class that's typically (in OCaml IIRC
> it doesn't have to be) a supertype. Java & Co mix these up, well...
I suppose you are right. I was thinking more in terms of C++ than Java.
--
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/