Andy Roonie meets Perl vs. Ruby... (I couldn't resist)


(Jan Witt) #1

Dwarves on Giant’s shoulders

You guys and dolls seem to be a little too
trigger-happy, when discussing the pros and cons
of Perl, Java and Ruby and their implementations.
Nobody is questioning Matz’s eclectic genius in
assembling so many good things in Ruby in such
a clean and consistent fashion.
But why did e.g. Ada, Smalltalk, CLOS not make it?
Why did Perl get such a wide following?
Why are the Ruby lower level primitives so Perlish?
And why is Java the real kludge of kludges?
“A system is a way of looking at the world”(Gerry
Weinberg)
The “minimum astonishment” principle requires people
to have a common or at least convergent understanding
of basic mechanisms (of the language, not somebody’s
library packages).
If given the choice, I personally prefer the
bare-bones see-through character of Perl to the ad-hoc
stupidities of Java syntactic infelicities and source
pileups.
by the way,
my name in real life is Jan Witt

···

Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup


(James) #2

Dwarves on Giant’s shoulders

Good way to begin a message. Lets everyone know to expect a well-reasoned,
professional comment.

You guys and dolls seem to be a little too
trigger-happy, when discussing the pros and cons
of Perl, Java and Ruby and their implementations.
Nobody is questioning Matz’s eclectic genius in
assembling so many good things in Ruby in such
a clean and consistent fashion.

This is true, but it really isn’t “you guys and dolls,” but a few folks,
out of many, voicing their opinions in a manner some might call flaming,
others refreshing. Seems to depend on whether or not you agree with the
opinions. Either way, the posts contain enough substance to make the
delivery format, at the very least, tolerable.

But why did e.g. Ada, Smalltalk, CLOS not make it?

Important question. Sort of presumes, though, a particular definition of
"make it."

Why did Perl get such a wide following?

Another important question. And in both cases it appears to a matter of,
as Richard P. Gabriel would say, “worse is better”

(http://www.jwz.org/doc/worse-is-better.html)

Why are the Ruby lower level primitives so Perlish?

Contempt breeds familiarity?

And why is Java the real kludge of kludges?

My quick take is that it started out as a language for embedded devices,
got caught up in the web frenzy, and gets features tacked on as soon as
Sun’s marketing team figures out which way the market is already heading.

“A system is a way of looking at the world”(Gerry
Weinberg)
The “minimum astonishment” principle requires people
to have a common or at least convergent understanding
of basic mechanisms (of the language, not somebody’s
library packages).
If given the choice, I personally prefer the
bare-bones see-through character of Perl to the ad-hoc
stupidities of Java syntactic infelicities and source
pileups.

As do many people here. What I got from Sean’s post was that, as a
language evolves, some tough questions must be faced. Do you continually
add “features” and complex APIs, a la Java? Do you continue to maintain
and build on earlier hacks and hasty add-ons to maintain compatibility?
When is a language “done”? I have great respect for Larry Wall, and if he
said there would be no Perl 6, but later changed his mind, I’m going to
figure he gave it a lot of thought. And if his choices turn out to be not
the best ones or not the right ones, well, maybe it’s hard.

When people submit RCRs and voice their opinions about adding to or
changing Ruby, we must do our best to learn from the progress of other
languages and try to avoid repeating mistakes. If it takes some heated
comments to get people’s attention then that’s OK.

by the way,

my name in real life is Jan Witt

My name in real life is James Britt. Pleased to meet you.


(Niklas Frykholm) #3

[Jan Witt]:

But why did e.g. Ada, Smalltalk, CLOS not make it?
Why did Perl get such a wide following?

Interesting and important questions. I think because of practicality.
And because there is one canonized implementation of Perl.

I really would like to program in Smalltalk and Common Lisp. They
look like great languages and I would like to learn more about them.
But I’m still looking for a CLOS or smalltalk environment that

* is free
* is cross-platform
* is easy to link to C code
* has a reasonable supply of third party modules

There is Squeak of course. But that feels more like a toy than a
production environment. I would be happy to be proven wrong.

Perhaps it was the Open Source movement that provided the greatest
boost to Perl. Perhaps if Lisp and Smalltalk had been developed
later we would have great open-source implementations of them.

And why is Java the real kludge of kludges?

Java has its good and its bad sides. It pretends to be type-safe but
isn’t. You have to convert objects back and forth just to put them
into containers. You have to create hundereds of pointless little
objects, just because the language doesn’t have first-class methods.

What’s good about Java is that they have defined a standardized
API for EVERYTHING. This makes it real easy to swap module backends,
read other peoples code, etc.

// Niklas


(Avi Bryant) #4

I’ve been using Squeak in production for the last six months; for
server-side deployment, it’s worked quite well. For client
applications, I imagine you’d have issues with the non-standard look
and feel. But don’t be fooled by the emphasis on education and bright
colors, it’s assuredly not a toy.

Depending on your definition of “free” (libre vs. gratis), and whether
"cross-platform" has to include the Mac OS, Smalltalk/X may also meet
your criteria just fine.

Avi

···

Niklas Frykholm r2d2@acc.umu.se wrote:

I really would like to program in Smalltalk and Common Lisp. They
look like great languages and I would like to learn more about them.
But I’m still looking for a CLOS or smalltalk environment that

  • is free
  • is cross-platform
  • is easy to link to C code
  • has a reasonable supply of third party modules

There is Squeak of course. But that feels more like a toy than a
production environment. I would be happy to be proven wrong.