Comment

Comment by DanielStraight

I would divide languages into these categories:

Practical and beginner-friendly: C# (if you're a Windows person), Python, Ruby

Technical and foundational (start here if you don't mind studying for 5 years before you produce anything practical): C, Lisp (using SICP)

Interesting but not beginner-friendly or foundational (play with these when you get bored): Erlang, Go, JavaScript, ML, Scala, Smalltalk

Haskell falls somewhere in between the last two groups. It's very technical, and it's foundational for functional programming, but it doesn't transition to other languages as well as C or Lisp might, and it doesn't have as much support as C and Lisp.

The last group is languages that are not especially interesting, beginner-friendly or foundational. That group consists of: C++ (complicated), Delphi/Pascal (little community support), Java (crufty, limiting), Perl (nightmarish syntax), PHP (jumbled mess which allows, but does everything possible to discourage, good code), Visual Basic (basically just C# with "simpler" syntax and less community support)

Any languages not mentioned are probably either far too obscure or outdated for you to even think about now.

I welcome disagreement on this categorization.

PS: I didn't forget Objective C, I've just never used it so I didn't know where to put it. Probably "interesting but not beginner-friendly."

PPS: There is a category which includes languages from all of the above categories. That category is "Likely to get you a job." It includes C, C++, C#, Java, JavaScript, Objective C, PHP, Python, and Ruby.

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton