2007-02-14 21:30:41 UTC
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).
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,
PLUG: http://plug.org, #utah on irc.freenode.net
Don't fear the penguin.