I want to learn a new language...

Andrew Jorgensen andrew.jorgensen at gmail.com
Wed Feb 14 16:04:32 MST 2007


On 2/14/07, Bryan Sant <bryan.sant at gmail.com> wrote:
> On 2/14/07, Bart Whiteley <bart.plug at whiteley.org> wrote:
> > Merits of the language and run time environment aside, which community do
> > you want to hang with?  My experience is that python-heads are an agreeable
>
> I'd like the enumerations of the merits of the language/runtime
> please.  Community is important, but I'm not doing this for social
> reasons.  I could care less if every Perl coder in the world was a
> hose head, as long as it's a better language/runtime that Python.

That's a little short-sighted of you.  Languages attract a certain
kind of people because they are a certain kind of language.  If every
perl coder in the world was a hose head you would surely either only
choose perl if you are a hose head or would become quite the hose head
after using it for long enough.  I'm not kidding.

Given that you're interested in scripting languages like perl, python,
or ruby you might really want to factor in which crowd you think
you'll identify best with.  Of course that won't be the most important
reason but it's not to be ignored either.  Reading their -users
mailing lists should give you a notion of what kind of people they
are.

Anyway, I'd like to say what little I have to say about Perl.  I
haven't used python or ruby to code anything so I really can't speak
to either.

I don't like perl.

I like code that's been written carefully, with the future in mind but
many of the modules you'll find on CPAN were written to scratch an
itch.  There are, of course, many modules that were very carefully
written by perl hackers who know what they're doing but there's a lot
of useless or half-baked crap out there and it puts a bad taste in my
mouth every time I end up writing my own module because the module
that's in CPAN just doesn't cut it.  One good example of this is
VCS::CMSynergy.  We needed a perl module to help us do stuff with
CMSynergy but that module doesn't do any of the things we wanted to
do.

I use perl a lot for sys-admin tasks because it's really well suited
to tasks that would stretch shell a little.  That's not to say that
shell couldn't do it but sometimes what you thought was going to be a
quick script grows into a larger project and you find yourself wishing
you'd used perl.

Honestly almost any small project I want to hack up I usually turn to
perl.  Not because it's a great language but because it's easy for me
to get something working in a small amount of time in perl.

One of these days I'll do something in python.  My brother Jens does
amazing things with python.  I'm sure they could be done in other
languages but it was pretty cool to watch him whip up a python program
that basically did what rsync does when it's passing binary deltas.
It only took him a few minutes and worked over ssh by passing python
code to an interpreter on the other side.  It was wild.

I also admire what the folks at Fluendo are doing with python in the
flumotion project.  The list of standard libraries is impressive and
cool projects like avahi, dbus, and hal have python bindings.

Andrew McNabb's comment about liking python the more he uses it is an
excellent indicator too.  The more I use perl the less I like it.  I
should probably read the suggested perl books though.

I've got a hunch that ruby is trendy and will go away due to lack of
interest soon.  I could be completely wrong about that.  It just
hasn't got a firm enough hold to really thrive.  Maybe ruby is like
IPv6, it's the next big thing but we're spending too much keeping the
older stuff working (and making it work better) to give it a decent
chance.

A few people have noted that perl is a great tool to have regardless
of what you love to code in and I'd have to agree.

My vote is for python all things considered.  That's what I intend to
learn next.



More information about the PLUG mailing list