• fubo@lemmy.world
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    1 year ago

    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.