/now
projects
ramblings
smol projects

an update

05.11.2023 2 min read

In PL (programming language) circles, there’s a quote that I’ve seen come up time and time again:

“There are only two kinds of languages: the ones people complain about and the ones nobody uses.”

And I think there’s quite a bit of truth to that statement. One way or another, every language comes with its own set of quirks.

I previously detailed some surface-level musings on languages I’ve learnt over the past 2-3 months. I don’t think I was fair, and want to take the chance to reevaluate them again, briefly:

Go

  • Clear
  • Verbose
  • Boring AF, and I stand by this one

Nim

  • Nice syntax
  • Has a really nice standard library
  • Compiles really quickly
  • I complained about the documentation previously, but I might have to walk that back. They really aren’t so bad to read once you know what you’re looking for.

Raku

  • Nice language
  • Can be considered “hard-to-read” due to an overwhelming number of sigils (they sure love their sigils!). But, sigils aren’t really so bad once you get familiar with them
  • Has a ton of features
  • Has a ton of syntax (TIMTOWDI!)
  • If you want it, Raku probably has it (mostly)
  • Compiles slowly, runs slowly. Introducing something as simple as an ORM will cause slowdown. Moving some logic from the MAIN subroutine into an external subroutine will cause slowdown (apparently this is a regression - I’m not sure if the Raku team is looking into it). If speed is mission critical to whatever you’re trying to accomplish, then Raku probably isn’t a great choice.

Crystal

  • Nice language, nice syntax
  • Tooling actually isn’t so bad. Compilation feels a bit on the slower end, but nothing crazy. Intellisense sometimes works, and sometimes doesn’t, but that really isn’t that huge of a deal. I’ve come to realize that, actually, I’m just spoiled and Javascript has better-than-average tooling. After playing with a few languages, I’ve come to expect a lot less.

That’s really about it (for now). All these languages have something to like (except maybe Go, I don’t know - maybe I’ll change my mind again).

Built with Astro and Tailwind 🚀