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.

  • @[email protected]
    link
    fedilink
    English
    173 months ago

    Languages

    C.

    Frameworks

    C.

    That said, Python and Rust are great for setting up “starting up” / “small task” apps and growing up from there.

    • @[email protected]OP
      link
      fedilink
      93 months ago

      There’s nothing to really grow. It’s mostly just small helpers. Aggregate sensor data, pull data from A and push it to B every hour, a small dashboard, etc.

      C is too involved for my case , I want to be productive after all.

      Rust is already rather low level, though there are some cool looking frameworks.

      • @[email protected]
        link
        fedilink
        53 months ago

        C is an extremely expressive language. There’s a reason it won’t die and, while we all love to shit on it for the memes, you can write perfectly safe software in it.

        • @[email protected]OP
          link
          fedilink
          153 months ago

          Of course, but I’m not productive in it.

          If I have to do everything myself, it will take more time to get it done. The trade-off is of course always control/speed vs convenience, but C is definitely too inconvenient for me.

        • @[email protected]
          link
          fedilink
          83 months ago

          you can write perfectly safe software in it.

          In the same way that you can safely walk through a minefield.

          I dunno what you mean about it being an expressive language either. I would say it is relatively low on the expressiveness scale compared to something like Python or OCaml. It’s basically as expensive as Go which is renowned for being unexpressive. Maybe you didn’t mean “expressive”.

      • Ephera
        link
        fedilink
        33 months ago

        If you’ve so far been able to do this stuff in Java, then presumably all your hardware has an OS and such and you don’t need this, but a colleague has been having a lot of fun with Rust and proper embedded development.

        It’s very different from regular development, as you’ve got no OS, no filesystem, no memory allocations, no logging. It can most definitely be a pain.
        But the guy always has the biggest grin on his face when he tells that he made a custom implementation of the CAN protocol (TCP is too complex for embedded 🙃) and that he had to integrate an LED to output error information and stuff like that. At the very least, it seems to be a lot less abstract, as you’re working directly with the hardware.