Dave Thomas wrote:

> So, here's my question. As Paul Prescod has said, Ruby and Python are
> fairly similar in many significant ways. Despite this, I personally
> have never managed to get excited about Python, but liked Ruby so much
> I wrote a book about it. Other folks have the opposite experience,
> loving Python and not finding much to thrill them about Ruby. Why is
> that? Is it some kind of personality clash between the language and
> the programmer? Is it liking what you're used to? Is it liking or
> disliking the philosophies of the languages' designers? Or is it
> something else?

I think that there are two factors into play here: conservatism, and
first-to-market.

Hah! I bet the word 'conservatism' got your attention. I don't mean it
in the sense of stagnated, but in the sense that that which you are
familiar with will seem natural to you. This part of the debate looks
a lot like those long-winded debates about user-friendlyness, which I
think is an appropriate term for programming languages 'touch and feel'
too. You pick up a tool, learn its nooks and crannies (and its pearls
and warts) and at that point that language will be the most
user-friendly to you. Before a person will consider moving to a new
language it will probably have to provide vast and glaringly obvious
benefits before it's even considered.

I think the programming language that first 'clicks' with you (each
time it happens, happened about 3 times with me) is more likely to
shape the way you think about programming than that your unformed
attitude as a newby to programming will steer you to pick a particular
language. As you gain more experience, that balance will probably tip
over. So whatever you're introduced to first will probably have a very
large influence on what you'll find intuitive later. I've heard the
'Ruby makes programming fun' argument numerous times, but I don't think
it's Ruby perse. It could well be it was simply the first language that
clicked for that person given his/her beckground and the problem domain.

There are things I like in concept about Python, but even though I
fully accept its more controversial parts (like the indenting stuff)
to be unique selling points to the language I don't think I'll ever be
drawn to it to actually write anything beyond experiments. Anything
that so explicitly dictates a style or way of working is 100%
guaranteed to ignite the petty rebel in me. Yes, I know that Ruby
dictates stuff too, as does any language (COBOL programs are not
likely to work in Ruby, for example), but that's a dictation I've been
desensibilized to.

Given no OO alternatives, I think I'd get used to Python, and once I
have it internalized, I'd probably even like it. But there are
alternatives aplenty -- Smalltalk, Ruby, C#, Java, elastiC, to name
but a few -- so there's no need for me to mold myself into Python.

Emile