Contrary to popular belief, I'm not a complete and total Java bigot... Okay, I lied, I am. Java is the shiz-nigget. However, I'm honestly wanting to invest in a new language for fun and profit.
I have a decent background in bash/shell, Perl, and I've played with Ruby and Python. One of the reasons that I'm so passionate about Java is because it gets ganged up on by all of the scripting language enthusiasts collectively. Java is pitted against the best features of Ruby, Perl, Python, Lisp, Smalltalk, PHP, and even Haskell, OCaml, D, and C/C++. Is Java going to beat the collective power of all of these languages? Of course not (but it would be close :-). Collectively the development language landscape is lush. But if I (the operative word is *I*, I'm speaking for myself) peel off any one of those languages and evaluate it by itself, it loses it's appeal compared to Java. I sincerely want to learn a new language well, but as I start to dig in to each language, I find warts that are even uglier than the step-child that is Java. I'd like to learn one of the following well: Python, Ruby, or Perl. Here are my problems with each language respectively: Ruby. You'd think this one would be a slam dunk for me. It's OO, it's hip, it gets all the press. But Ruby is the SLOOOOOOOOOOOOoooooooooooowest freaking language ever invented. It's not just kind of slow it is so slow that it's embarrassing. For MOST tasks, I'm sure that doesn't matter. When dealing with the web, the bottleneck is the network. Utilities or shell-ish scripts don't need to be fast. I could be convinced that speed is less important than some other uber cool features in the language. Perl. I like the fact that Perl is everywhere. You can't swing a dead cat by the tail without hitting into a Perl interpreter. I like that Perl is mature. One word, CPAN. All of this is great, but I DON'T like the whole, "there's more than one way to do it" deal. More than one way? That's a I nice way of saying that every Perl program is as unique as a snow flake. I'd like to use a language that others (and even ME after 6 months) can read. My own experience backs up the claims that Perl is a "write only" language. This may be overly dramatic, and Perl may be more readable than I think if I spent some more time with it. Help me learn to love Perl. Python. Python is the front runner for me. I like speed and Python is comparatively fast. I like that Python is on most Linux systems (but no UNIX systems in the entire world). I like that Python is very readable and confines developers to use a similar layout and style. I like that Python is named after a Monty Python. I think snakes are cool. On the down side, I heard that Python didn't originally have OO capabilities and that this was later bolted on (the same is true for Perl). I get my OO, so what am I complaining about? Well, when you don't have to use OO, you often find code snippets and other developers who haven't bothered to learn and write OO code, so you're stuck with crap semi-OO code or none at all. Ruby being OO from the start seems like it would have a better object oriented standard lib and a more OO competent user community. I also don't like that Python has Zope, TurboGears, and Django. Ruby seems to have just one popular web framework instead of three to learn (yes, I don't have to learn all three, but I will come across them sooner or later). Please advice. PS > Don't say, "You should use each one for what it's best at." Screw that. I'm not interested in learning to create "Hello World" in 20 languages. I want to pick a language and acquire a deep comprehensive knowledge of it. I'd rather be awesome at two or three languages than so-so with 15. I want to pick ONE -- please make sure it's the best. Thanks in advance, -Bryan /* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */