I’ve been researching programming languages to find a good, high level language that compiles to a single binary that is preferably pretty small. After tons of research, I landed on Nim and used it to make a quick txt parser for a project I’m doing.

Nim seems absolutely fantastic. Despite being sold as a systems programming language, it feels like Python without any of its drawbacks (it’s fast, statically typed, etc.) - and the text parser I made is only a 50kb binary!

Has anyone here tried Nim? What’s your experience with it? Are there any hidden downsides aside from being kinda unpopular?


Bonus: I want to give a shoutout to how easy it is to open a text file and parse it line-by-line in this language. Look at how simple and elegant this syntax is:

import os

if paramCount() == 0:
  quit("No file given as argument", 1)

let filepath = paramStr(1)

if not fileExists(filepath):
  quit("File not found: " & filepath, 1)

for line in lines(filepath):
  echo line
      • atzanteol@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        1
        ·
        edit-2
        2 days ago

        The best argument I’ve heard for whitespace blocking is “it’s not that bad when you get your text editor configured”. That’s an excuse, not a reason.

        • hikaru755@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          1 day ago

          Idk know what editor you’re using, but it worked perfectly fine out of the box with IntelliJ. Nothing compared to the hassle of setting up a proper Eslint setup for typescript, honestly.

          And I’m not trying to defend python here, I don’t touch that language except under duress, and I do prefer C-style code blocks as well. But this is kind of a pointless argument.

        • bitcrafter@programming.dev
          link
          fedilink
          arrow-up
          2
          arrow-down
          4
          ·
          2 days ago

          A text editor that indents a block when you press “tab” is not hard to find and takes all of 30 seconds to set up.