Ask HN: Best Second Language after Python

12 points by hacjjjjjjjj ↗ HN
It has been already decided that Python is the best first programming language. After months of learning Python, now I am a fully competent Python programmer. I can write command line python apps, cross platform GUI apps using PyQt, I can make web apps using Django and learn other many Python tools. Now, which language should I learn as second language ?

14 comments

[ 0.33 ms ] story [ 38.0 ms ] thread
JavaScript

It can help your web apps on the UI side, but it is going to be a major language/player in the next couple of years on the server side due to projects like node.js.

Why is node going to be major? I know it gets a lot of press, but AFAICT it seems to be from front end people who want to do backend programming, or from people who don't realize that there are simple COMET frameworks for other languages (eg, Tornado for Python, I;m sure one exists for Ruby).
Haskell (or another functional language). It may not yet be as widely used industrially as some other languages, but it will improve the way you think about programming, and it is also of great practical utility. I find it the easiest of the many languages I've tried over my lifetime to get a working program in a short space of time.
Even though I've never used Haskell for anything other than playing around with toy examples, I'm really glad I learnt it. If nothing else I became a far better python programmer after having learned Haskell.
Either Javascript, since it's the language of the web on the client side, and it's fairly easy to get started with, or a very different language, like Haskell or Erlang.

The advantage of learning something very different is that it will give you a much better overview, and if you ever need or want to learn yet another language, it will be that much easier.

I recommend C because it will improve your understanding of what happens below the hood.

(I'm not against learning a functional language, but that direction has been recommended enough by now)

I second this. Although it does not have immediate practical payoff as learning something like Javascript or even Java would have. But spend a month of two manipulating memory at the low level and playing around with pointers in C and you'll be a better programmer for it.
I am a Ruby convert coming from Python, perhaps if you learn Ruby you'll come the same path. You also might enjoy CoffeeScript since it borrows some aspects from python (indenting).

Beyond that c (for when you must go to the bottom of things) and JavaScript (the web language).

I'm picking up Java after self-learning Python for the past couple of years as a hobbyist. Why? Because of Android. I want to do cool things to my phone now.
i think the language you learn should depends on what you want to build.
Java. Lower level language, performant cpu-bound multithreading, deep object orientation, platform independent runnables, lots of libraries, Android. Java has numerous downsides too, of course, but I'd definitely suggest to consider it as a very useful secondary language.
Try C.

Hacking the Python interpreter or making a Python wrapper for a library written in C is a good way to learn C for a Python programmer.