post #11 of 11
I'd recommend either Ruby or C#. Doesn't matter which, they're both really good learner languages. If you want to learn a more niche language (still a great one), go for F#. Not quite a beginner language but still a good one.

Some reasons why I wouldn't recommend some of the suggestions in this thread:

Python - A pain because of its whitespace rules.
FORTRAN - Too old.
Java - C# is better in every way.
Javascript - Prototype inheritance is quite weird, doesn't really teach you OOP.
Go - One of the better choices, but I have no experience with it, so I can't recommend it. However, I can't say it's bad, per se.
Scheme - Same deal as with Go, but I would also add if you want to go down the LISP route, there's better dialects. Also, sorry for the xkcd.
C(++) - Just a massive PITA. C++ was my first language, and it was PAIN. Pointers vs refs, implicit pointers (passing by ref without having to put the & sign). Also its error messages are really cryptic, so if you put an equals instead of a double equals, it'll take a wgile to track it down.
BASIC - I lied a bit, I had some (a tiny amount) of experience with BASIC before C++. It's good for really simple stuff, but when you do stuff that's more complex (eg write to files) it's got a weird syntax. Also there's no OOP. (well, those two apply to every dialect except VB.NET: but C# + F# are much better for that).