News for hackers. Stuff that matters.
Re:Thirteen Years of Go by KingOfCoders on Friday November 11, 2022 @12:19PM (#33563619)
I currently write a SaaS website in Go after doing quite some Rust. I do prefer Rust as a language - it's more expresive and I greatly prefer Result<> over error, but it has two major downsides for me compared to Go. First compilation is much slower and Go feels like a non-compiled language because of the compilation speed (my last startup I've used Scala with horrendous compilation speeds, the main reason not to use it) The second is the borrow checker. It's excellent mostly (love explicit mut) but fails for me for structs with sub-structs coming from different owners. Very fast you have Arc<> noise everywhere. A simple GC as a -gc=on with auto-arc for variables without lifetime annotations for people that don't need Rust for embedded applications would be a dream come true.

I also love 'import "embed"' in Go to embed web files (templates) inside a binary and then deploy/manage that one binary with systemd with zero downtime updates with systemd port activation. Slick.

Re:Thirteen Years of Go by TrustPatches on Friday November 11, 2022 @01:50PM (#33564995)
Not sure if it’s an exact parallel, but you can also embed files into rust binaries with “include_bytes!” and “include_str!”.
Re:Thirteen Years of Go by 5e92cb50239222b on Friday November 11, 2022 @02:24PM (#33565485)
It's a bit more advanced than what Rust macros provided last time I checked. You can shove whole directories in there and then traverse them or serve as static resources with pretty much one line of code.

Random blog post with a few examples:

https://blog.carlmjohnson.net/post/2021/how-to-use-go-embed/

Re:Thirteen Years of Go by TrustPatches on Friday November 11, 2022 @03:44PM (#33566547)
Very cool, I guess one the the advantages of rust macros is that you could write your own to do something more advanced in theory
Re:Thirteen Years of Go by super_flanker on Friday November 11, 2022 @03:53PM (#33566666)
You can do the same in Rust with include_dir[1]

1: https://docs.rs/include_dir/latest/include_dir/

Re:Thirteen Years of Go by scruple on Friday November 11, 2022 @04:45PM (#33567286)
I've gone as far as embedding a ReactJS app inside of Go's embedFS. It's pretty damn powerful.
Re:Thirteen Years of Go by surajrmal on Saturday November 12, 2022 @11:22AM (#33574479)
You can avoid Arc in rust the same way you avoid mutexes in go - use channels instead. I find programming rust with channels between tasks feels quite ergonomic. Also, at least to me, it seems like it's a no brainier to pick a language with a GC if your target runtime environment allows for it.
Re:Thirteen Years of Go by Casperin on Saturday November 12, 2022 @12:14PM (#33574980)
Mine does. Still picked Rust, and so happy I did. The type system alone does it for me.