Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Poll: Which 3 languages would you learn
22 points by Jun8 on Dec 8, 2010 | hide | past | favorite | 36 comments
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)




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.


If you are interested in Greek Language check these Speeches from Xenophon Zolotas http://en.wikipedia.org/wiki/Xenophon_Zolotas


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.


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.


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.


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 ;) ..


Python, Ocaml, Erlang

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


Well, I guess that was the wrong answer.


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.


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)


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.


> ... 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-...


  - 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 :)


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.


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.


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.


Are folks answering "three new to them" languages or "which three languages, even if you already know one or more"?


The original question was 'If you could only learn 3 languages ..."


Python, Haskell, and actually master C


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.


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


Haskell, Erlang, Ocaml


Java, Ruby, Javascript


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!


The best thing about Java is how much it will make you appreciate the other ones. :-)


VHDL, Haskell, Self.

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


F#, Haskell, Clojure

Chinese, Sanskrit, Spanish


Shell (I'm including the mini-languages like awk), C, and Haskell.



Scala, IO, Erlang


C, Standard ML, and Unix shell.

Lojban, Swedish, and Japanese.


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.


Chinese, Spanish, Deutsch?


Why? The first two make sense due to sheer numbers. What's the motivation for the third?


F# - Clojure - C


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.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: