And the Garbage Collector in Go is also a thing that helps ton for most normal work. To be honest, I wish sometimes Rust had an optional GC mode (I know this would be against the principles of the language… don’t take this wish too seriously). I see it like C with a GC+Concurrency. And one should not forget, because the language is dead simple, the compiler compiles extremely fast; even suitable as an interpreter language basically (purely judging by speed metrics).
But after being exposed to Rust, I do not have fun with Go because it misses some really cool or basic functionality; like proper error handling. Ultimately these are different approaches and that’s good. In example functional programming works a bit differently and we are not saying they should give up on this approach, because you like C so much.
To be honest, I wish sometimes Rust had an optional GC mode (I know this would be against the principles of the language… don’t take this wish too seriously).
If you just need the occasional cop-out, you can wrap a value in an Rc or an Arc. They do reference-counting, which is almost like garbage collection (reference counting can’t resolve cycles between references).
Yeah, Rust is ultimately a different project than Go, and I suspect much of the success of Go is down to stuff like good tooling, default GC, native static binaries, generally easy concurrency, rather than stuff like having as bare-bones a language as otherwise possible. I’d suspect having a focus on fast compilation also helps draw in people from interpreted languages.
It’s easy to write a Kubernetes microservice that performs adequately with Go, and that’s all a lot of people & teams need.
And the Garbage Collector in Go is also a thing that helps ton for most normal work. To be honest, I wish sometimes Rust had an optional GC mode (I know this would be against the principles of the language… don’t take this wish too seriously). I see it like C with a GC+Concurrency. And one should not forget, because the language is dead simple, the compiler compiles extremely fast; even suitable as an interpreter language basically (purely judging by speed metrics).
But after being exposed to Rust, I do not have fun with Go because it misses some really cool or basic functionality; like proper error handling. Ultimately these are different approaches and that’s good. In example functional programming works a bit differently and we are not saying they should give up on this approach, because you like C so much.
If you just need the occasional cop-out, you can wrap a value in an
Rc
or anArc
. They do reference-counting, which is almost like garbage collection (reference counting can’t resolve cycles between references).Yeah, Rust is ultimately a different project than Go, and I suspect much of the success of Go is down to stuff like good tooling, default GC, native static binaries, generally easy concurrency, rather than stuff like having as bare-bones a language as otherwise possible. I’d suspect having a focus on fast compilation also helps draw in people from interpreted languages.
It’s easy to write a Kubernetes microservice that performs adequately with Go, and that’s all a lot of people & teams need.