News for hackers. Stuff that matters.

Poll: Which 3 languages would you learn

A lot of the comments to a recent post (http://news.ycombinator.com/item?id=1982903) suggested that they would like to see a similar poll for HN, so here it is. I don't want to restrict the choices and will collate the data in the replies. THREE languages per reply, please

Let me broaden it a little and also ask the optional question: Which new natural language(s) would you like to learn and why (i.e., other than your native language an the ones you are fluent in)

( 36 comments | 22 points | on HN )
Re:Poll: Which 3 languages would you learn by irahul on Wednesday December 08, 2010 @06:20PM (#1985143)
Python, C, Javascript

I am assuming you aren't talking about learning 3 new languages, but rather, 3 languages if you are to learn only 3.

Python - A practical and elegant language. It supports both one-off, throw-away scripts and large applications. It has native libraries or bindings for majority of tasks. You can do procedural programming, object oriented programming, some FP, state machines....

Besides getting things done, it's a beautiful language for exploratory programming(IPython, concise language, slime...). It has some good meta-programming and reflective features. A lot of literature is available on advanced python - I watched Alex Martelli's Google talk on design patterns and I whole heartedly recommend it.

The whole ecosystem: * Superb documentation * Backed by big companies * Good tooling - sphinx, App Engine, pip, virtualenv * Abundant, battle tested libraries * Helpful community

makes it a good choice.

C - Insanely fast, lot of existing software and libraries written in it. Used for implementing high performance servers, used for browser, kernels... You can contribute to your favorite project viz. chromium(is actually c++), kernel, python, ruby; you can rewrite slow parts of your Python application in C.

People not conversant in C often say things pertaining to C being verbose. That's far from truth; C is in fact a very terse language. It's the standard library and lack of high level data structure that got it this incorrect reputation. The libraries might seem lacking but it's only the standard library that is small. Third party libraries are abundant and should be used, rather than reinventing the wheel.

Javascript - It would be a practical choice to complete the stack. Python/C for backend/desktop apps, Javascript for client side. With V8 and node.js, Javascript has sneaked in to the backend. Coffeescript takes out the ugliness out of Javascript, if the language quirks are bothering you.

Web is buzzing with activity now-a-days, and performant & conformant Javascript implementations has partly ridden the wave, partly triggered the wave.

If you are playing on web's playground, you should learn this language. If you aren't playing on the web, you should consider it. It's a lot of fun, and who knows, Google might acquire your startup for $ 6 billion. Even if you aren't after the money, the web is still a superb platform for getting your products out to a big audience. It's rewarding and a learning experience.

Re:Poll: Which 3 languages would you learn by sourc3 on Wednesday December 08, 2010 @12:09PM (#1983660)
Am I the only one who doesn't think programming language when I read natural language?

I speak 4 at the moment; I would like to be able to read French since it was the international language up until 200-300 years ago and maybe some Greek to be able to read the ancient texts.

In terms of useful languages, I think Italian is the most enjoyable language although I know it I would like to master it.

Re:Poll: Which 3 languages would you learn by gspyrou on Thursday December 09, 2010 @08:36AM (#1987324)
If you are interested in Greek Language check these Speeches from Xenophon Zolotas http://en.wikipedia.org/wiki/Xenophon_Zolotas
Re:Poll: Which 3 languages would you learn by mahmud on Wednesday December 08, 2010 @02:12PM (#1984176)
Bliss, Sisal, Mercury, ECLiPSe, Esterel.

Bliss is Wulf's baby, and I have the book; sick compiler. Purely for the sake of idol-worship.

Sisal, very influential language. FP for scientific computing, high performance. Would love to implement it.

Mercury .. I never really got logic programming all that well, besides some elementary prolog. Would love to explore the domain further but hindered by the opaque works that spill over from logic.

ECLiPSe is a constraint-logic programming package. Never used a standalone CLP system before. Only via Mozart/Oz, AliceML and Common Lisp (via Screamer)

Esterel is a language for reactive programming: think real-time and embedded devices. I vaguely know the language (1-2 weeks) but I haven't got the theoretical backbone to tackle it fully. Need to study temporal logics, brush up on process algebra, and perhaps even take up some discrete event simulation before I can fully grok it.

Re:Poll: Which 3 languages would you learn by Jun8 on Wednesday December 08, 2010 @10:59AM (#1983341)
Java, Javascript, C++

I know this selection seems passe but here's my rationale: First, learn a lingua franca that (almost) everybody knows and has huge libraries. That would be Java. Java is the English of computer languages, I think.

Javascript not only has immense presence (the default selection?) in most web development, and is gaining prominance in developing on mobile devices, e.g. bypassing the whole Objective-C & Cocoa stuff for iPhone and iPad. I don't know it much, but it also seems like an interesting language.

The third choice is not that clear, depends on whether you want to have an all-powerful language (C++) or one that excels in concurrency (e.g. Erlang) or want to expand your horizons (Scheme or Haskell, perhaps), etc. etc. I use C++ daily and if I had to do again I would still select it, but I may be biased because I am doing image and video analysis work.

As for natural languages: If you are interested in linguistics, I think you've got to learn Ancient Greek, to see a lot of the complexity and mechanisms that has been lost in other IE languages (you can, of course learn Lithuanian or Hittite for even a better grasp, but sources to those are harder to find and the reading material would not be as exciting, I think :-). It was an eye opener for me. As a second choice, I would go with Chinese, for the mind-expanding aspect (did you know that Chinese speakers can roughly classify the meaning of a word even if they don't its meaning, using radicals?) Also, you prospects for a job get multiplied 10x.

Re:Poll: Which 3 languages would you learn by alienDeveloper on Wednesday December 08, 2010 @01:14PM (#1983937)
Well i already know php to some extend, and the basics of C/CPP, Java, Action Script and all..

But i really like to get my hands dirty on C/CPP(im working on a MySQL storage engine as a hobby) and i like to learn python( i like maya[Animation], not only that python is a very strong language) too .. Those are the 2 currently in my list..

And if u want me to chose one more.. i say Java, because it will give me a very strong background on some very kewl concepts which i can use in other languages.. :)

And about my natural languages..

I definitely like to learn Sanskrit because their is a lot of knowledge hidden in Sanskrit books which u can never find else where, then i like to learn Chinese because i like the way its pronounced. and finaly spanish because.. well their is no because for that.. i just like to learn thats all.. :)

actually its harder than i thought it will be to reason why you learn a natural language other than if you are going to visit the related country or you are dating someone from that country ;) ..

Re:Poll: Which 3 languages would you learn by jamii on Wednesday December 08, 2010 @10:48AM (#1983282)
Python, Ocaml, Erlang

Learning Korean at the moment. Mainly in order to know what I'm buying in the supermarket.

Re:Poll: Which 3 languages would you learn by jamii on Wednesday December 08, 2010 @01:35PM (#1984008)
Well, I guess that was the wrong answer.
Re:Poll: Which 3 languages would you learn by chrisaycock on Wednesday December 08, 2010 @01:29PM (#1983986)
Haskell, Erlang, Lua

I do C++ and q/kdb+ professionally, plus I know enough Python to get by. The three above are pretty different and would be interesting to expand my horizons.

Bonus question: Spanish (it's the second most common language in the States)

Re:Poll: Which 3 languages would you learn by lhorie on Wednesday December 08, 2010 @11:11AM (#1983397)
I assume you mean "learn" as in "master", not just merely pick up the syntax to bang out the next big web app(tm) quickly, as it's fairly easy to pick up Python/Ruby/PHP/Javascript/whatever if you already program in a mainstream language.

Programming languages:

Haskell - Lots of interesting language features that you don't see elsewhere

Assembler - Already know some C, but would like to be working knowledge of the inner workings of computers (especially things like cache misses etc)

R - Need to brush up on statistical analysis skills

Natural language: Already learned English... I guess I'd take Japanese or Korean next? It'd be mostly for entertainment.

Re:Poll: Which 3 languages would you learn by jamii on Wednesday December 08, 2010 @11:15AM (#1983413)
> ... working knowledge of the inner workings of computers ...

I'm a big fan of 'The Elements of Computing Systems' - takes you from NAND gates to pong.

http://www.amazon.co.uk/Elements-Computing-Systems-Building-...

Re:Poll: Which 3 languages would you learn by ronnieCA on Wednesday December 08, 2010 @11:46AM (#1983552)
Clojure, C# (or more generally the .Net Framework), and Python.

As for natural languages, hands down Mandarin. I spent the summer in Hong Kong, and while they spoke Cantonese there, it was still a fantastic introduction to Chinese culture.

Re:Poll: Which 3 languages would you learn by buster on Wednesday December 08, 2010 @10:41AM (#1983264)

  - C
  - Java
  - Python
Optional: Japanese, probably. I thought of learning a new language for some months but am still unsure which. Maybe this thread gives some idea :)
Re:Poll: Which 3 languages would you learn by jawee on Wednesday December 08, 2010 @09:42PM (#1985763)
C -- It's the classic. I've only learnt Java in the C-style languages, and I'm interested in all of the code written in C.

Emacs Lisp -- I love using Emacs and I've always been interested in Lisp from what I've heard online. Sounds like a useful way to do it.

Haskell -- The idea of a functional language intrigues me... I'd love to try it.

And spoken languages? I'm interested in Latin and Ancient Greek because I already read a lot of works written in those languages, in translations. Thirdly, probably German.

Re:Poll: Which 3 languages would you learn by SingAlong on Wednesday December 08, 2010 @08:36PM (#1985592)
Haskell, ruby, javascript

Just because Haskell has a lot of interesting features. Ruby is too easy but vast and javascript makes cool stuff possible both in and out of the browser.

Re:Poll: Which 3 languages would you learn by xiaoma on Wednesday December 08, 2010 @01:33PM (#1984001)
I'm already fluent in Mandarin and English and have some Japanese, Taiwanese, and Cantonese.

If I had extra time specifically for language learning, I'd like to have the Japanese become fluent and pick up some Spanish and Russian. Japanese because of its enormous economic and cultural clout, Russian, because a lot of Russians live in this part of the world, and Spanish because it's the second most common first language on the planet after Mandarin, which I already speak.

Re:Poll: Which 3 languages would you learn by anamax on Wednesday December 08, 2010 @01:08PM (#1983914)
Are folks answering "three new to them" languages or "which three languages, even if you already know one or more"?
Re:Poll: Which 3 languages would you learn by jamii on Wednesday December 08, 2010 @06:25PM (#1985161)
The original question was 'If you could only learn 3 languages ..."
Re:Poll: Which 3 languages would you learn by kaylarose on Wednesday December 08, 2010 @11:15AM (#1983412)
Python, Haskell, and actually master C
Re:Poll: Which 3 languages would you learn by reinhardt on Wednesday December 08, 2010 @08:32PM (#1985584)
Javascript: Currently the lingua franca of the Web. In the near future, the "bytecode" other languages (existing and new) will compile down to.

D: So far seems like "C++ - the good parts".

Scala: In case I ever have to touch the JVM again.

Re:Poll: Which 3 languages would you learn by waterlesscloud on Wednesday December 08, 2010 @10:39PM (#1985918)
C- Fast, lingua franca of the programming world

Lisp- Just to keep my mind agile

Prolog- I've always enjoyed it as much or more than anything else.

Natural language- ancient greek, to read the classics in the original tongue

Re:Poll: Which 3 languages would you learn by irfn on Wednesday December 08, 2010 @11:10AM (#1983392)
Haskell, Erlang, Ocaml
Re:Poll: Which 3 languages would you learn by danest on Wednesday December 08, 2010 @11:06AM (#1983374)
Java, Ruby, Javascript
Re:Poll: Which 3 languages would you learn by vnchr on Wednesday December 08, 2010 @11:41AM (#1983535)
Why? I liked your list, but I'm a novice. Would you please elaborate about why you like this combination? Ruby and Javascript make sense to me for web scenarios. Is Java your third because it's more enterprise accepted? Other reasons for Java? Thanks!
Re:Poll: Which 3 languages would you learn by btilly on Wednesday December 08, 2010 @12:50PM (#1983829)
The best thing about Java is how much it will make you appreciate the other ones. :-)
Re:Poll: Which 3 languages would you learn by cafard on Wednesday December 08, 2010 @01:59PM (#1984113)
F#, Haskell, Clojure

Chinese, Sanskrit, Spanish

Re:Poll: Which 3 languages would you learn by Someone on Wednesday December 08, 2010 @02:30PM (#1984254)
VHDL, Haskell, Self.

Bonus question: Linear A, because it would be scientific progress, and put me in the history books.

Re:Poll: Which 3 languages would you learn by wnoise on Wednesday December 08, 2010 @02:18PM (#1984200)
Shell (I'm including the mini-languages like awk), C, and Haskell.
Re:Poll: Which 3 languages would you learn by anon_d on Wednesday December 08, 2010 @02:05PM (#1984139)
C, Standard ML, and Unix shell.

Lojban, Swedish, and Japanese.

Re:Poll: Which 3 languages would you learn by inetsee on Wednesday December 08, 2010 @11:39PM (#1986067)
I would love to learn Lojban. But when I'm feeling pragmatic, I think it might be easier to to find someone to practice with if I tried to learn Esperanto.
Re:Poll: Which 3 languages would you learn by egor83 on Thursday December 09, 2010 @09:29AM (#1987517)
Re:Poll: Which 3 languages would you learn by mtarnovan on Wednesday December 08, 2010 @12:33PM (#1983759)
Scala, IO, Erlang
Re:Poll: Which 3 languages would you learn by mrpollo on Wednesday December 08, 2010 @12:45PM (#1983809)
Chinese, Spanish, Deutsch?
Re:Poll: Which 3 languages would you learn by xiaoma on Wednesday December 08, 2010 @10:29PM (#1985892)
Why? The first two make sense due to sheer numbers. What's the motivation for the third?
Re:Poll: Which 3 languages would you learn by fmstephe on Wednesday December 08, 2010 @03:08PM (#1984417)
F# - Clojure - C
Re:Poll: Which 3 languages would you learn by GrandMasterBirt on Thursday December 09, 2010 @12:14AM (#1986149)
C, Java, Lisp

c - because you can always do it in c

java - because there is tons of work, and its a damn good language

lisp - because sometimes i just need a language with which i can build another language.