I am ready to learn a new code set. Whats the best language to learn right now?

2 points by vidioradeo ↗ HN
I want to learn a new code, and have heard lots about Ruby, Python, and Perl, but I want to be sure before I begin my endeavor. Familiar with HTML, XHTML, some Perl. Any ideas?

9 comments

[ 3.2 ms ] story [ 38.0 ms ] thread
What do you want to build?

Ruby or Python is good. Just pick one. Flip a coin. Or do what I did: I picked the one that _Why's book was about, and that proved to be a very amusing way to choose:

http://poignantguide.net/ruby/

(See also: http://hacketyhack.net/ and http://shoooes.net/ .)

Also good, but for different things: Scheme (as learned from SICP), C, Objective C, Java (so that you'll know what everyone else is complaining about).

Mechanical_fish asked the right question: What do you want to build? Once you know what you can get passionate about, figure out what people commonly use to build apps in that arena.

Some suggestions:

Rich media websites? Flash/Actionscript

"Desktop-class" web apps? Cappucino or SproutCore

Business web apps? Java or C#, SQL

Aiming to work at a startup? Rails/Ruby or PHP, SQL

Desktop apps? Objective-C or .NET, SQL

Looking to expand your mind? Erlang, Lisp, Haskell, or OCaml

Hardware or Operating Systems? C, C++

Hope that helps. This is by no means a complete (or even totally accurate) list, so others please jump in.

I use Rails, but would add Django/Python to the "startup" list
thanks so much for the in depth response...really helped.
There is no "being sure" before you start learning, because in order to determine what you like, you first have to learn your options. It's better to just pick something and start than to forever wait for the "right" thing.

Personally, I made a choice between learning Ruby and Python based mostly on emotion: I found most Python code samples more aesthetically pleasing.

Try Prolog. It'll at first please you and later either make you a code genius or drive you insane. But the ride is fun!
Thanks to all for your suggestions.
I'm going to be slightly contrarian and suggest two languages that are widely considered boring and old hat.

All too many developers think they know what there is to know about both of them, and most of them are wrong.

These are languages that will be useful to you in any shop in the industry; in fact you've probably had occasion to use them both already.

SQL and Javascript. You may think you know them already. But they both reward in-depth study.

I'm learning Python/Django right now (coming from a strong Java and Perl background, plus a mish-mash of other stuff)

Liking it a lot, plus have already written an app and deployed it in the GAE, which is pretty cool in itself