I have a small homelab running a few services, some written by myself for small tasks - so the load is basically just me a few times a day.

Now, I’m a Java developer during the day, so I’m relatively productive with it and used some of these apps as learning opportunities (balls to my own wall overengineering to try out a new framework or something).

Problem is, each app uses something like 200mb of memory while doing next to nothing. That seems excessive. Native images dropped that to ~70mb, but that needs a bunch of resources to build.

So my question is, what is you go-to for such cases?

My current candidates are Python/FastAPI, Rust and Elixir, but I’m open for anything at this point - even if it’s just for learning new languages.

  • @ZILtoid1991
    link
    53 months ago

    The standard answer is C/C++.

    The nonstandard answers are:

    • D. It’s fairly close to Java, but with garbage collection you’ll still at like 50MB depending on your usecase (it just doesn’t immediately give the memory back to the OS for speed reasons), or you have to use some of the alt runtimes without a GC and many of the standard libraries.
    • Rust, if you can deal with immutability by default, a borrow checker, and many other quirks.
    • There’s also languages like Zig, Nim, etc.