I’ve used over a dozen languages, from BASIC to Haskell to C++.
If I were starting a new project today, it would probably be in Go, or in Python with static typing using mypy. Unless the project was itself a language or something language-like, in which case I couldn’t stay away from Haskell and monadic parsing.
If I were looking to learn a language that I haven’t worked in before, it would probably be Rust or Clojure.
Go is really fast, works well with “the Unix philosophy” (although maybe I should say “the Plan9 philosophy”), and has pretty excellent tooling.
Python is everywhere and there are libraries for everything. However, Hindley-Milner has been part of the CS canon for my entire life and there is zero excuse for a language not having type inference today.
Haskell gives access to the best goddamn parser library ever: Parsec. Screw the category theory; combinators are the Correct formalism for parsers.
(If you’re still reading this: Read Graham Hutton’s Programming in Haskell, second edition.)
(I made the mistake in my last job of getting 80% of the way into writing a new tool — a “configuration as code” utility for configuring load balancers — before I realized that it was, in fact, a compiler and would have been much cleaner if architected as a compiler instead of as a glorified ETL tool.)
Rust is what the Lemmy backend is written in, and I have terrible ideas of trying to stick my fingers in there and hope they’re not bitten off.
Clojure is what a few of the most productive programmers I know work in, so there must be something good in there. Also, it’s been almost 20 years since I last used a Lisp for serious work.
I’ve used over a dozen languages, from BASIC to Haskell to C++.
If I were starting a new project today, it would probably be in Go, or in Python with static typing using mypy. Unless the project was itself a language or something language-like, in which case I couldn’t stay away from Haskell and monadic parsing.
If I were looking to learn a language that I haven’t worked in before, it would probably be Rust or Clojure.
Go is really fast, works well with “the Unix philosophy” (although maybe I should say “the Plan9 philosophy”), and has pretty excellent tooling.
Python is everywhere and there are libraries for everything. However, Hindley-Milner has been part of the CS canon for my entire life and there is zero excuse for a language not having type inference today.
Haskell gives access to the best goddamn parser library ever: Parsec. Screw the category theory; combinators are the Correct formalism for parsers.
(If you’re still reading this: Read Graham Hutton’s Programming in Haskell, second edition.)
(I made the mistake in my last job of getting 80% of the way into writing a new tool — a “configuration as code” utility for configuring load balancers — before I realized that it was, in fact, a compiler and would have been much cleaner if architected as a compiler instead of as a glorified ETL tool.)
Rust is what the Lemmy backend is written in, and I have terrible ideas of trying to stick my fingers in there and hope they’re not bitten off.
Clojure is what a few of the most productive programmers I know work in, so there must be something good in there. Also, it’s been almost 20 years since I last used a Lisp for serious work.