in reply to Learning ***** as a second language

OK: Java! Java!. But here's why I think so.

Perl is just plain *wonderful* -- up to a point. It lets you do some pretty sizable jobs with incredible ease. But there comes a point where the job gets bigger than perl (or any other scripting language) can handle. For big jobs, where you'll probably find yourself collaborating with other developers, you need an industrial-strength language.

Funnily enough, it's just about at the point where perl collapses under its own weight that OO techniques become useful. This is also the point where a bit more design thought before you code starts to pay off.

(Sorry, much as I love perl, I don't consider its OO support one of its strong points).

Lots of languages inhabit the space that lies beyond above scripting languages, and I'm not familiar with most of them. But I like Java. IMHO, it has got OO just about right: not as kludgy as C++, but usable to do real stuff, unlike more academic offerings like Eiffel.

Java's not as facile to code in as perl (no surprises there). But that's where tools come in. To program in an IDE like Eclipse is a completely different experience. A lot of the heavy lifting is done for you.

Eventually, you may find design tools, such as one of the numerous UML packages, useful for doing really big jobs.

Go down this route and, as an earlier Anonymous poster suggested, you will "learn about the essentials of computer science which will make you a better programmer". In the process, you may find your way to a few things that are more enjoyable (and remunerative) than Sysadmin jobs.

But you'll still find that, for the small things that need doing every day, there's nothing like perl.

-- Dinosaur