Of all the Rust stuff that I've seen on HN, this is the first one that makes me go "maybe I should learn Rust". Not for the performance aspect, but because it seems so neat to be able to compile to a binary. I went to the releases page, I downloaded bluetui-x86_64-linux-gnu, and it works.
From your comment, I'm assuming you're mostly familiar with interpreted languages. Chances are that you know JS/TS. If that's the case, I suggest that you give Go a go. The learning curve is way softer than Rust's and it's not too uncomfortable to someone who already knows TypeScript. And the advantage of Go over Rust is that the compile time is much, much shorter.
I went from Bash to Go as a system admin, and eventually built something with Rust too, so I can definitely confirm that the Go learning curve is softer than Rust.
I only watch the go part, and I'll say that in 3 years working with I might have had at most 3 times nil pointer crashes in prod, in which took about 30 min between getting fixed and deployed.
There are linter which helps prevent most of if not all crashes (just keep in mind to run linting and compile the binary it would still be ages faster than anything rust I have ever compiled). His argument is weak, and not simple.
I'll give that type system in golang is too simplistic sometimes, and a more complex could help to express better some use cases.
Still go for a person coming from a interpreted language is a solid choice by being MUCH MUCH simpler.
> 3 years working with I might have had at most 3 times nil pointer crashes in prod
I've been running a rust app for my personal trading app and a small service at a very large FAANG company for more than 3 years, and guess what I'm yet to see a nil crash.
Agree, people should understand why they are picking a language. If it is to learn new language that is fast, compiles to a binary (also fast) and has a nice onboard experience for a person coming from a interpreted language (which is the topic of thread) go fits nicely.
Rust is not always the answer just because it has "no nil exception". The correctness of Rust comes at a cost as well.
If it's good enough for Linus Torvalds, it's good enough for me :-)
I'm not a professional programmer, I just want to have more control over my computer. C seems like a full time job to learn and not shoot yourself in the foot.
This is anecdotal but I've been using bluetuith for a year on my nix machine with several adapters then switched to bluetui recently, and my experience with bluetui has been amazing. I just ran into issues all the time with bluetuith and I assumed it was due to the OS or something.
An example I can think of is trusted connections- my devices just never automatically connected once switched on, but now they do.
You can do it with any language that supports static linking, like C, C++, Go etc. You can also do it with things like Pyinstaller for Python. It's not that big of a deal tbh.
It absolutely is a big deal that you can run “cargo build” with no set up and things just work. Out of the languages you listed, Go is the other where it’s that easy.