News for hackers. Stuff that matters.
Re:Bitwarden compatible server written in Rust by azth on Thursday December 23, 2021 @03:23PM (#29666049)
Java is way more expressive and better designed than golang. So no, golang is not Java with less memory. It's also possible to deploy Java as a single JAR file.
Re:Bitwarden compatible server written in Rust by todd3834 on Thursday December 23, 2021 @05:31PM (#29667240)
Is this more a matter of preference? Some people feel it is more expressive, others feel it is too verbose. Some people prefer the object oriented design principles, others are turned off by them and really just want structs.

I agree the single file argument is not extremely convincing. Especially because engineers are often on Mac on Windows machine and compiling for Linux. While Go does support this, as soon as you have to use a c library dependency (in my experience this was sqlite), then we had to start compiling in the environment we wanted. Easy to solve with docker but deployment wasn't the reason I like Go.

I should spend some time thinking about why but overall I just "feel" more productive with Go vs Java (including Kotlin). Go's standard library, docs (with links to the source code), everything just feels super readable and understandable.

I don't see much debate agains Go using less memory. I can confirm this was my experience as well. My experience is that it uses a lot less CPU as well.

Re:Bitwarden compatible server written in Rust by azth on Friday December 24, 2021 @10:15PM (#29680044)
> Is this more a matter of preference?

No it isn't. On many times I've been able to simplify golang code that is dozens of line long into something that is only a few lines long in Java, while improving readability and reliability. This is especially useful when exploring a new code base and spending a lot of time perusing boilerplate trying to figure out what's going on.

Re:Bitwarden compatible server written in Rust by fomine3 on Thursday December 23, 2021 @08:38PM (#29668982)
Java app can be a single executable by using GraalVM Native Image