I'd say depends on what you want. To learn generally about programming, I'd go C/C++ - something without garbage collection. If you're looking to be effective quickly, and have lots of existing libraries and support, I'd choose something like Java.

Rust is too new for my liking and I don't trust all the fanboi proclamations about it - although will be happily proven wrong. I prefer the tried and tested.

Reply to this note

Please Login to reply.

Discussion

Hmm, interesting perspective.

From what I’ve seen, modern languages have SO MUCH to offer over C++ and Java.

All the experienced devs I know who know 3+ languages prefer Rust, Go, or something more obscure, over those older languages.

I’m also not working in a situation that requires me to learn 10+ year old code bases. I’d rather learn something modern.

I think we cannot currently determine which modern languages offers real extra value. I think there is a bias to exclude things where the flaws are known for things where the flaws are unknown.

My more general thesis is programming is in its infancy and nobody knows what they're doing. Bloodletting was used frequently and unnecessarily in medicine for 2000 years. I wouldn't be surprised if we do something similar with programming. We need the programming equivalent of double-blind studies.

If I'm right and nobody has a clue, maybe it doesn't really matter what language, so just choose whatever you feel like, flip a coin, or whatever. I always try to remind myself that code is just a tool to deliver value, not an end in itself - I'm really not experienced enough to be giving out this kind of advice, but, hey, it's the internet 😛