2 ms·
There are two languages that more than anything changed how I thought about programming. The first is Lisp. The second is Haskell. Lisp taught me, essentiall
by jarcane 12y ago
There are two languages that more than anything changed how I thought about programming.
The first is Lisp.
The second is Haskell.
Lisp taught me, essentially, that most of what I'd been doing in other languages was unnecessary tedium, and introduced me to the functional style for the first time.
Haskell taught me that even some of what I was doing in Lisp was itself unnecessary tedium, and that things like typing that I'd found tedious in other languages, could actually work to my benefit. Even though I still don't code in Haskell as my main language, it made a functional believer out of me, and still affects my coding style and the design projects I've done since.
As for 'objectively verifiable', well, go look at most any equivalent program in Haskell or Lisp to one in C or Python and just compare how many code lines it takes to do the same work. All the 'design patterns' and 'constructors' and costly looping constructs and everything else falls away for so much tedious bullshit when you get your hands on a language with proper functional tools. And the benefits to sanity of writing in a state-free style are literally the reason I left purely imperative languages behind.
Even the best, least tedious code I see in imperative languages usually comes from people who've had experience in functional languages: probably my favorite Python programmer to read is Peter Norvig, because his Lisp background shows through even in his Python code. This is why people say over and over again that, even if you never touch a functional language again, it's still good to learn at least one, because it will improve the way you code and how you think about functions and composition of same.