[Tutor] Are you allowed to shoot camels? [kinda OT]

Alan Gauld alan.gauld at freenet.co.uk
Thu Feb 3 10:48:38 CET 2005

> > How's Ruby? I bookmarked the homepage, but never got around to
> > at it.
> Very, very nice. Cleanest object-orientedness I ever saw in a
> (not that I have that much experience -- people like Alan would
> probably be better judges than me on this).

You knew I couldn't resist! :-)

Ruby OOP is OK although I don;t like the @ stuiff for members,
theres simply no need for it!

ONe thing I really like about Ruby is its implementation of iterators
and generators - much better than Pythons IMHO.

And their anonymous code blocks (aka lambdas) show how it can bve
Pythons lambda feature is a bare minimum (and Guido wants to remove

> anyway because Ruby has a huge flaw: it's Japanese (AFAIK it's also
> only "Made in Japan" programming language, apart from stuff like ASM

Yes the Japanese thing is an issue.
THere are a few English books now, and the original one by Thomas
and Hunt is free on the web.

> And as far as I know there is no tutor at ruby-lang.org.

No English one at least.

> From what I remember, if you're programming in an object-oriented
> style (which I now tend do by default unless there is a painfully
> obvious and optimal solution in procedural style), Perl is the
> thing ever created since Visual Basic.

VB is a thing of beauty compared to Perl for OO!
In fact I actually don't mind VB OOP at all, especially in
its .NET variant which includes inheritance and polymorphism.
But Perl OOP is a hideous bodge.

> was frighteningly ugly. Java was built as an OO language from the
> ground up, if you except the presence of the basic C types.

But unfortunately built very badly as an OOP environment. Its
more accurate to call it a class based language since its
perfectly possible to build a Java program with no objecs
but lots of classes! I'd go so far as to say that if you
followed Java's lead on OOP you would pick up some very
bad OO habits and write code that was not really very OOP
at all!

Thats not to say you can't write good OO code in Java just
that Java does little to encourage it. You need to read a
good OO book, like BRuce Eckels Thinking IN... series) to
see how to do it properly!

> ...Sure, it requires a lot of typing
> (in both meanings of the word),


1) The Java Virtual Machine is a horrible resource hog.

Most virtual machines are, especially those that try to
be the OS as opposed to simply wrap the OS... The old
UCSD Pascal virtual machine was the same, it ran great
on a mainframe but the little Mini computers we had
in the labs were woeful!

> 2) Sun didn't ever encourage anyone to write [insert language
> here] compilers that compiled to JVM bytecode.

I don't think they discouraged it, there are JVM compilers
for Python, Smalltalk, Lisp, Tcl and Perl at least...

And whats worse is that there are few native code compilers
for Java. The JVM thing is a big hype factor IMHO. We've been
writing C/C++ programs for years that ran on Windows/Unix and
IBM boxes with only minor #ifdefs inserted. The performance
(and hence costs for servers!) differences are huge! Its no
coincidence that 2 of the biggest supporters of Java
(IBM and Sun) are hardware vendors!

A slightly cynical

Alan G.

More information about the Tutor mailing list