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
  • msa@mastodon.sdf.org
    link
    fedilink
    arrow-up
    9
    arrow-down
    1
    ·
    3 days ago

    @communism @FizzyOrange Sometimes you want modern features and safety without the headache that is writing Rust. Rust is a complicated language. I just want something simple without a million footguns.

    • FizzyOrange@programming.dev
      link
      fedilink
      arrow-up
      5
      arrow-down
      1
      ·
      3 days ago

      Rust is fairly well known for not having footguns (except async Rust at least) and for not being a headache.

      I guess it can be more complex than something like Python or Typescript though. I would say that extra complexity is not a big deal compared to the pain you’ll have to deal with working with a language as niche as Nim though.

          • TehPers@beehaw.org
            link
            fedilink
            English
            arrow-up
            2
            ·
            3 days ago

            uv is love. uv is life.

            I’m still trying to get people at work to use it. It’s one of the few tools out there that takes Python from intolerable spaghetti to readable and maintainable.

              • TehPers@beehaw.org
                link
                fedilink
                English
                arrow-up
                1
                ·
                3 days ago

                conda isn’t much of an alternative to pip. It’s more of an alternative to venv. Unless you’re referring to conda’s dependency management, which I’ve admittedly never used.

                And until pip uninstall foo uninstalls unused transitive dependencies too, you’ll have to drag me back.

    • communism@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      3 days ago

      I’m not really sure what people mean by Rust being a headache/weird/hard/etc honestly. It was a learning curve but nothing crazy, and I’ve come to really like the ways Rust works—it makes my life way easier in the long run to be able to solve problems at compile time so I don’t have to debug undefined behaviour at runtime. But to each their own of course—if another language works for you then it works for you.