
Ask HN: How do you go about picking a new language to learn? - polysaturate
Aside from on-the-job reasons, how are you deciding which new programming language(s) to learn?
======
sahrizv
I'll outline an approach of mine:

Step 1: Offload the initial selection task to the hype machine. This gives me
a smaller set of candidates to work with.

Step 2: Go through the language guides/documentation to understand the core
ideas and USP of the languages in the above set.

Step 3: Try to guage the long term viability. This is usually based on some
data points but mostly intuition and experience.

Step 4: How does it feel to work with. Is it suitable for the kind of problems
you want to solve? Does it provide some technological leverage for the
business problem you want to solve, if you are looking for such leverage.

Step 5: Start tinkering with the language(s) that made it past step 4, and be
open to update your evaluation during some probation period.

If you want to know my reasoning behind those steps, feel free to ask. :)

------
dtnewman
I usually ask myself if the language can do things that I can't do with a
language I already know. For example, I learned a bit of Go because it shines
at concurrency in a way that other languages I know didn't. My first language
was C++ and I wanted to learn a scripting language so I took up Python. Etc.,
etc.

Beyond that, I prefer to learn languages that are well documented and have
strong communities for support. In my opinion, these not only make it easier
to learn the language, but are also good proxies for whether the language will
continue to thrive.

~~~
polysaturate
Exactly why I wanted to learn some Go myself. Been doing years of Ruby
development and I really wanted to learn something that shined in concurrency.

------
anonu
I want to learn Rust. Partly because its talked about nonstop here on HN. But
I have doubts: \- Will this language continue to grow and be relevant in the
near future? \- Will people continue to expand available libraries? \- Is
there an existing and active community out there that can help answer
questions?

~~~
webmaven
Right now, the answer to all those Qs seems to be "yes."

Whether that will still be true five years from now is always harder to say.

------
webmaven
I look at capabilities my current language set doesn't cover well, and/or
ecosystems that are exploiting rapidly growing niches. I also have an aversion
to vendor-owned rather than community/foundation owned languages.

I've forgotten all the BASIC, FORTH, ColdFusion, etc.that I ever knew, and
C/C++/Java never stuck in the first place, so my current language set is
Python, Javascript, and SQL (not counting server-side HTML templating
languages, CSS preprocessors, etc.).

Ruby's strength is in the webdev ecosystem, but overlaps too much with Python
there.

Go looks interesting but is owned by Google. Same with Dart. Swift is owned by
Apple, etc.

So right now, Rust is next on my list.

------
I_am_neo
First, find a problem or something you'd like to learn about. Me one day
decides mp3 players are cool and should be hacked, searches around finds
rockbox, learned some C. Or me got assigned the task of interfacing off the
shelf barcode scanner with orangehrm and OpenERP, mmmm definitely python
there. Or when I was interested in cross platform compatibility and delved
into java.

Point is that languages are often specialized or different to themselves for
different reasons, and you should keep that in mind when choosing.

------
jetti
To be honest, I listen to what the new shiny is from places like Reddit and HN
and take a look into it. If it seems interesting and has features or does
things well that my go to language (C#) doesn't have then I dive deeper. For
instance, I heard about Elixir from HN and Reddit and thought it was
interesting. I started looking into it and now I'm learning it and writing a
few projects and love it.

