For a simple client-server time-tracking setup, I want to write a client that tracks uptime of a computer and, optionally, a few known processes (e.g., editor). My original idea was to use golang for the client, but i am wondering if babashka would be a reasonable alternative? Clients could be Windows, Linux, macOS, and I want a minimal-dependency tech stack on the client side that is also operationally simple to work with. Is babashka a good choice for such a client app? Notably the Windows side (e.g. to support registering the client app as a windows service running the background)?
Yeah why not?
I am asking because, with golang, you have e.g. a very straight-forward way (as far as I understand) to codify service registration with https://github.com/kardianos/service. Whereas babashka requires external tooling for that, e.g. http://github.com/winsw/winsw or https://github.com/mtkennerly/shawl. The core functionality of the client will just be fine with babashka. My question is in the context of the included batteries of babashka. I know it has a lot (nice!), but I don't know what batteries are exactly available.
That is, the end-to-end installation and setup to deploy a babashka-based client to Win/Mac/Linux
And, if third-party tools need to be used (e.g. for Windows service registration), what people typically pick for that. Otherwise I just start experimenting with whatever I can find.
I don’t know anything about service registration in Windows but if you can just register any binary with some tool then I’d expect it to work with bb. You can also make a self-contained binary with babashka that includes all of your external deps. I can find the docs for you later, afk here