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