Hacker News new | ask | show | jobs
by nuancebydefault 1344 days ago
I think it is impossible to make a list of programming languages that are worth learning. Just as a comparison, would you also make such a list for normal languages? English, Arabic and Chinese?

Choosing a language to learn depends on, among many more aspects:

* What style do you prefer. Return codes vs exceptions, small lambdas vs elaborate functions...

* What paradigms you find useful (procedural, functional)

* how do you think, rather mathematical, more in a state/execution way or more like cooking (recipes),...

* what applications do you like? Frontend to a store, embedded/industrial, mission critical,...

* simply taste. I hate ruby and love python. For a lot of people it is the other way around.

* do you love optimizing? For what memory, speed?

* Do you prioritize or advocate readability, maintainability, re-use?

In the end you have to choose your battles, you can't master all paradigms and styles in one lifetime.

2 comments

But I think the point should be to get at least a taste of either end of every one of those continuums, so that you get a broad overview of what kinds of problems are well suited to different sets of tradeoffs. For another silly example, see the difference between rust’s collect and using generators in Python. Same end result with very different semantics.

Without this, there’s a risk that the “learning” is just tunneling in on your own pre-existing prejudices (insert hammer-nail metaphor here).

This holds for natural languages too!

I did a linguistics degree as an undergrad, and one of the requirements was coursework/proficiency in two different foreign languages. Unless you planned on actually using both of them, you were strongly encouraged to choose very different languages, rather than (say) Spanish and Italian.

Having learnt a Romance language, I took a year of intensive Japanese (the tones in Chinese were a bridge too far). It was a nightmarish amount of memorization and I juste eked out a passing grade, but the exposure to totally different writing, grammatical, and honorific systems was also really fascinating.

I understand what you mean and I agree for the most part. Still, there are multiple degrees of freedom for choosing languages, any list is just a proposal.
Right, but the presence of all those degrees means it’s valuable to at least dabble in many different languages, vs asserting that a list of just a few basically has it covered.
> I think it is impossible to make a list of programming languages that are worth learning

"Worth learning" is a subjective phrase, so it'll naturally be different for everyone. My list above was to give a list of languages that would cover as much of the spectrum as possible.

> would you also make such a list for normal languages? English, Arabic and Chinese?

No, for starters because I'm terrible with spoken languages and rather ignorant. But to make it a better comparison, I would say "learn one romance language" (or maybe just latin), or "learn one language written right-to-left".

If you were taking a painting class, it would be reasonable for the teacher to select some techniques to teach over others, or to showcase some select master painters to try and cover as much ground as possible in the course.

The idea being that you have a finite amount of time. Do you want to spend it getting a wealth of very similar experiences, or a broad appreciation.

Using your python vs ruby example: I think the more you learn, the smaller the differences between python and ruby are. There may be a profound difference on the experience of using either based on the users preferences and choices the languages made. But from a conceptual point of view, they're very close to each other.

> romance language

That's a language any person can learn :p