From: Daniel Martin Date: 2006-07-09T21:35:50+09:00 Subject: Re: Why Ruby over Python? "M. Edward (Ed) Borasky" writes: > Incidentally, where I disagree is that I think there are six families: > > 1. Macro assemblers > 2. Algol > 3. Lisp > 4. APL > 5. Forth > 6. Smalltalk I'm just curious; where does Haskell fit in this? I think in this taxonomy it might fall under "lisp" because of the broad "functional" language category, but I've found that doing serious stuff in Haskell stretches my mind more than the bits of common lisp I've learned (but that's probably because I have never gotten heavily into CL macros). I remember several years ago someone responded to a slashdot interview question with a list of about twelve language categories, with several languages fitting into multiple categories; the idea was that a well-rounded programmer would know at least one language from each category. I'll see if I can find it. As for the original subject of this thread, I just find ruby more fun to program in. I definitely do not think that ruby code is more obvious to the untrained eye than other languages - if that were the only category, python would indeed win. However, the experience of writing python feels like explaining things in detail to a somewhat dim coworker. While there's something to be said for that approach, I find that it often gets in the way of what I want to do - I want a fast way to translate ideas into running code. Since there's not yet a telepathic compiler, we're stuck with using some sort of language, and I see no reason to use a language more cumbersome than necessary. I suppose that the whitespace usage comes into play here, although I'm definitely not opposed to using significant whitespace, having been bitten a few times by ruby code that looked right indentation-wise but left off the "end". I just wish python whitespace were optional the way it is in Haskell. That being said, the dynamic language I use the most is still perl. I was never nearly as put off by all the bits of "snoopy swearing" as some people seem to be - I suppose I learned perl at a time when my mind was flexible enough that it just twisted certain structures into a perl shape. Perl also has the advantage of being much faster for most operations than ruby or python. When I want to move text A in spot one over to text B in spot two, I use perl. That's what it's for, and it does that job amazingly well. (It's not all regexps either. The one-liner to convert fixed length records into newline-delimited regexps is nice and tight.) It's disturbing how many business problems boil down to moving text from A to B. When I wanted to document an algorithm for my father (who speaks none of the same computer languages I do aside from C/C++, and has spent his career largely in VB or at the VB/COM interface), I used python. I was already doing extensive documentation, so at that point... When I want to play with programming, I choose ruby. When I want to experiment, and don't really know where I'm going to end up, or how I'm going to want to do something, ruby is there and ready to be twisted however I want. In short, when I want to have fun, I choose ruby. (those business analysts who are looking at this and thinking of right now mandating python use for everything are well advised to go (re-)read the book "Peopleware", and realize that developers having "fun" has very serious economic advantages)