Why care about programming languages

40 points by b--man


ryan-duve

Also, learning languages is fun.

bakaq

Yes! And that's why I think it's really valuable to learn many languages from many different paradigms: it gives you new ways to think about computation. The way you would solve a problem in Uiua or Prolog is very different from how you would solve it in Java. This intuition you gain transcends the programming language you learned it from, and makes you a better programmer in general and better equiped to chose the best tool for each given problem.

This works best with languages that are significantly different from each other. If you know Java you have much more to gain from Haskell than from C#.

travisgriggs

on OOP languages, identity vs equality—understanding state and comparison

Encapsulation, binding behavior to data, reificiation, inheritance, were some of the other things I got from my OO time.

I would hypothesize that “getting” the pillars of these paradigms is harder in “multi paradigm” languages.

Elixir has taught me a ton about pattern matching, immutability, and “actors” because it is so pervasive/fundamental to how it works, even though I can find odors of those things in other less opinionated languages.

pyj

There's a lot of programming language knowledge that we take for granted.

juuso

This made me think of recent occasion; a relative of mine was glossing over a paper I had just submitted. The proofs were in Lean 4. This relative, a programmer by trade, mistakingly thought it was Python. I did not want to sound patronizing, so I did not correct him, but it did make me think how relatively similar many languages look like, even though there is a rather large conceptual chasm about how one thinks about programming in one or another.

wink

This has nothing to do with AI, but I've cared about what I use at work a lot less than what I use at home for many years.

Sure, it makes sense to learn several and look at many (although I think it's more about concepts than actual languages) - but in the end it won't matter for probably 2/3 of the jobs you will hold.

There can be bad choices (or even terrible ones) but in the end very often it's about the domain and solving problems, and as long as I don't hate the language, whatever. Not all things need to be fast. Not all things need to be beautiful. Boring is good. But of course you're allowed to hate specific ecosystems (looking at you, npm).