in reply to Re: Programming Languages
in thread Programming Languages

++ but do learn another language or more. Preferably, learn something less like Perl than Python. It helps you as a programmer if you can see how to tackle problems in more than one way instead of just in more than one syntax.

Scheme and Common Lisp are relatively popular choices. They lend themselves to approaches that can be useful in Perl, but which are different from the approaches of people more comfortable with C or Pascal descended (ultimately Algol descended) languages. Haskell, Prolog, Smalltalk, Postscript, Erlang, and Forth would be good options, too.

There is a middle ground, too. There are other languages more like Perl in many ways than those mentioned in the previous paragraph which are still more distantly related than Python or Ruby. JavaScript, Ada, Fortran, and Lua are some with lots of documentation and source code out there. A+, HaXe, or hundreds (thousands) of other languages have been created and see some use, but are not necessarily groundbreaking in and of themselves.

Some languages are mostly for playing with the concept of a programming language and implementing something in an unusual way. These aren't really useful, in general, for writing real software. They can be a fun learning experience, though. It's probably best to learn a few languages before playing with them, though. Unlambda, Intercal, Path, Dis, and Befunge are examples. Unfortunately, m4 and TECO's command mode appear to be examples in this set but are not. ;-)

Replies are listed 'Best First'.
Re^3: Programming Languages
by Lawliet (Curate) on Aug 19, 2008 at 23:27 UTC

    Lisp and Ruby were my next choices. The only thing is that I do not want to risk forgetting all the small helpful shortcuts and secrets Perl offers whilst learning another language.

    I'm so adjective, I verb nouns!

    chomp; # nom nom nom

      Don't stop programming in Perl. Just add another one alongside it. I find it often helps me get up to speed in a new language by solving the same problem in both languages.