ROFL (was Re: Java)

Michael Brailsford brailsmt at
Tue Feb 13 16:29:53 MST 2007

This thread is just too much.  Stuart includes digs against Ruby and Haskell too.  I find it funny that the only people responding, with vigor even, are the Java fan boys.

There must be some underlying reason, but it escapes me at the moment...  

/me mumbles something about insecurity and wanting everyone to agree with your viewpoint

For the record, I don't hate Java, it just isn't the end all, be all of programming languages.  I enjoy programming in C/C++, Ruby, Shell and Perl, depending on which is the best fit for the task at hand.  Same goes for Java, if it fits to job, great, otherwise, use what best fits the occasion.  I just don't have the opportunity to use it often, if at all.


----- Original Message ----
From: Levi Pearson <levi at>
To: Provo Linux Users Group Mailing List <plug at>
Sent: Tuesday, February 13, 2007 5:19:40 PM
Subject: Re: Java

On 2/13/07, Michael Torrie <torriem at> wrote:
> From what I've read, they are bytecodes to allow the changing of a class
> on the fly.  Adding methods, removing methods.  The problem is that this
> seems to sort of shoe-horn small-talk style OOP into the rigid,
> Java-style OOP, which is really borrowed from how C++ implemented it.
> Smalltalk doesn't really have a concept of a class and a class instance.
> Rather everything is an object that listens for and can send messages.
> The messages themselves are analogous to Java methods.  Python, for
> example, merely implements a __getattr__ method on every object that can
> be user-defined to bring this smalltalk-like behavior to python.  So I
> wonder how well it will solve this problem.  .NET's CLR seems to have
> bested the JVM in the dynamic realm.  IronPython runs amazingly well on
> it currently.

I'm not sure what you mean when you say that Smalltalk doesn't have a
concept of a class and a class instance.  Smalltalk actually has a
very well-developed concept of classes, though classes are indeed
objects as well.  Every object has a class, which is an object of its
own metaclass.  Metaclasses are also objects, and have a class as
well, etc.  Thus, while everything is still an object, there are also
classes and instances.  Here's a page that describes it, with some
diagrams that really help make it comprehensible:

It's Self, which is a derivative of Smalltalk, that eschews the
class/instance distinction and instead uses a prototype-based form of
inheritance.  This is similar to how Javascript does things.

While Java has the concept of classes, if I recall correctly it does
not treat them as fully-fledged objects, and I certainly don't recall
a concept of metaclass in Java.


PLUG:, #utah on
Don't fear the penguin.

More information about the PLUG mailing list