If you are going to learn a language, learn the most powerful and efficient language you can find so that you can reach your goals faster. As far as I can tell, until ARC comes out, that language is Lisp. A lot of people complain about the lack of Lisp open source out there, but in fact, our application is loaded with great open source Lisp libraries. See: http://news.ycombinator.com/comments?id=20010 http://news.ycombinator.com/comments?id=12619 http://www.google.com/search?q=site%3Aycombinator.com+lisp http://www.cliki.net/index http://common-lisp.net/
The key is to learn best practices of whatever language you choose. Don't learn bad habits. Read the authoritative books and don't take short-cuts. Don't be the guy writing code people cry at having to maintain. Avoid "cargo cult" programming, where you just paste code you find into your programs without fully understanding it. I recommend never pasting at all in fact. At the very least re-type everything as you're learning and try to understand it as best you can.
You can safely skip haskell, lisp, prolog, and all those languages you will never get friends to help you with, many books to read, or libraries to leverage. At least until you've got enough experience to be mostly independent of assistance.
With the use of best practices it doesn't really matter if you choose: Ruby, Perl, Python, or PHP. I'd ignore Java because it has so many training wheels, and the others don't. These can all work extremely well for web development and anyone who says different is selling something. The Truth™ is that Perl5 is the best and Perl6 will make them all obsolete :-)
We almost never use OO in our Perl codebase, except where bolting on OO makes a lot of sense (specifically, the UI functions, some CPAN modules that have a more natural OO interface), but in the Ruby code I've written it's all objects and it never feels forced or bolted on. Partly, it's the tasks we're doing where functional programming makes more sense, and partly it's due to having a large codebase that pre-dates Perl 5. Oh, yeah, we also have a huge swath of disparate data being passed around amongst different systems and services, and it's very natural to pass them around as arrays and treat them similarly to lists in lisp. map, grep, shift/unshift, and pop/push get a lot of use in our code. I'm pretty certain we'd do it differently in Python and we'd probably do it differently in Ruby. It'd probably take quite a bit more code in either of those languages, but it might be more readable on first (and second) glance.
Perl 6 will change some of our practices (in three or four years when Perl 6 is wide-spread, anyway), but not all of them. Objects will be beautiful in Perl 6, so we won't avoid them, and argument passing will be much cleaner (right now we pass around refs to arrays a lot, which is somewhat fragile when API changes happen), so those things will change, but our treatment of data will probably remain similar.
So, I agree with you about Ruby syntax. It looks very similar, and is very comfortable to me, as a long time perl coder. But when you actually start building things, the comfortable paths diverge quite a bit.
Anyways, www.hacketyhack.com is a great integrated IDE for learning the syntax of ruby.
You probably meant languages that are biased primarily towards functional programming, as opposed to others where FP is not the dominant paradigm. You have to specify that much if you are going to include the Lisps but leave Python out.