Just wrote my first go program. Holy WOW is it easy to pick up. CLI is great, linter is great, package support seems great, build times are great... so excited to stop using Rust
Comments
Log in with your Bluesky account to leave a comment
only strict reason i'd choose rust is programs that run indefinitely and need stable performance like cars, satellites, medical devices, and operating systems.
Anything with variable IO I'd choose Go. 10ms vs 20ms cpu time hardly is where you have bottlenecks in distributed systems.
my experience was actually the opposite -- i started programming with one of my first languages being C & Go, and eventually as I picked up Rust and was proficient at it, I kinda didn't have much reason to write Go since Rust did just about everything Go did but more idiomatically
Go is absolutely fantastic in that way, super quick to learn.
One of the many great mysteries in my life though is why Go and Rust are often compared as similar types of languages to choose from. I think it boils down to compiling to standalone exes, which makes people feel "systemy".
when really Rust is for very particular situations where you need a lot of speed and a lot of safety and Go is a pretty normal GC language that just does you the favor of compiling the runtime in by default.
I think a major part is both were marketed as "systems programming" languages even though that term is being used different between both communities. Add on top that Rust is often sold as a replacement for C/C++, and Go's minimalist syntax makes it visually similar to C to some extent.
Real questions. Have Been considering career change and am relatively new to coding: Is it still worth learning all the old languages (Basic/VB/C/C++/C#/Java etc) for maintenance and legacy purposes? Given Rust/Go seem like replacements, where should someone new focus their energy?
With that said, learning to program on a professional level is a long marathon, and by the time you'd be able to land a job, you should be able to float between languages fairly easily. Focus on learning to design and write software. Which languages you learn in the meantime is less important.
Well, and, to your point, I am a tiny bit older, so yeah, narrowing focus & putting emphasis on doing the thing is very relevant. I had a technical career before in electrical trade... "floating" through various new concepts regularly, on the fly, is something I am used to. Thank you!
C++, C#, and Java still get an incredible amount of use in new projects, and it's very useful to understand that style of programming. Rust and Go are niche languages in comparison, and they're less suited to large application codebases. You can safely ignore Basic/VB.
In addition to my other comment, if your struggling to choose, pick a domain (web apps, embeded, games, data science, etc) that strikes your interest the most, and then go with whatever language is most common in that domain.
I agree with almost everything you’ve said so far, but would you be able to expand on your point about Rust being less suited to large application codebases? My personal experience has been the exact opposite.
FWIW it's the one I've used the least, but it's syntax has a high cognitive load, it's std library is less focused on high-level abstractions like Java and C#, and has a smaller ecosystem to offload problems to, so reading the codebase is going to be slower, which is significant in a large project.
Yeah, and you can use a hammer to put in a screw, but it's not the right tool for the job. Used it for like 80hrs a week for over 2 years. Glad it's gone. It makes microservices super simple, but if you are building any thing beyond that, you are just hammering in those screws.
That's true as a general principle. Regardless, Go can be used perfectly well for (as we do) command line programs. It really isn't only suited to microservices.
Go is pretty pragmatic, which I like. I still think its error checking sucks and is worse than all the alternatives but other than that, it's not too bad.
If you want to develop anything in #kubernetes #CloudNative space there's no running away from #Golang which was my main motivation. I am actually starting to enjoy the language as a less than ideal but a nice middle ground between Python and C in terms of std. library, readability and performance.
- rough compile times
- no!sy? &syntax;
- a compiler that makes me feel stupid most of the time. It's very helpful, but feels like a friend that says "well technically..." all the time
I know Go and Rust are in different perf categories. But if you just need a good compile-to-binary lang, who cares
It tend to disagree on the noisy syntax if you use a framework. For example Poem feels so good to work with. It’s quite web ready without being painful at all
There can be unexpected problems from language choice... say you write an open source utility in Go, and someone wants to use it as part of an embedded Linux project (ie, Yocto). Getting Go to cross compile for embedded is the stuff of nightmares (been there, done that & despise Go now).
After having reviewed thousands of LOC, the way Go deals with errors is a big plus point for me. Assuming that functions and methods will just work without errors/exceptions is the fastest way to a crashing server
Aren’t they for different use cases? I’d still use Rust for embedded compute and anything where memory management needs to be predictable. Go I would use more for server side back end development etc.
Eh, kind of. Golang is a unique choice, since it’s one of the only performant compile-to-binary languages with garbage collection (other than swift at least). I was looking to build some native desktop tooling, so that fits the bill perfectly. Rust felt a step too complex
Should be pretty familiar, but with a lot of niceties that makes writing code a joy. I mean, you literally define functions using the "fun" keyword lol
I guess the only issues are a still growing library ecosystem, as well as Gradle, the build system
I looked at Roc actually! It’s just so early for me. No help from search tools or package authors, so you gotta dig deep into the community and love what they’re doing. Elixir’s the only FP language that fascinates me
I think initially that was definitely true, but from what I’ve seen, in the past few years Rust has grown quite a but into all sorts of higher level programming areas like backend dev space, so there is more overlap now
As someone who has written Go professionally for about 8 years, my love of it stays immense. There are some gripes I have, some are design choices, but the biggest is nil pointer panics. If they ever add robust safeguards for that, even as a linter, I would be so happy!
Every language should have sum types, no more accidental null pointers, no more forgetting to check special case values that mean something different. no more forgetting to check if a function returned an error or not.
Meh, the error handling is fine. It’s a design choice and while it can be a bit verbose, the whole philosophy behind the language is to be verbose and clear. It’s a bit annoying to write, but it’s super clear to read. And code readability is way more important.
But are you comfortable with go language syntax? Go is not giving me the programming confidence. Rust syntax is even if it is complex still it is very convenient to build systems using it. I prefer rust to build sustainable systems
Comments
Anything with variable IO I'd choose Go. 10ms vs 20ms cpu time hardly is where you have bottlenecks in distributed systems.
One of the many great mysteries in my life though is why Go and Rust are often compared as similar types of languages to choose from. I think it boils down to compiling to standalone exes, which makes people feel "systemy".
- no!sy? &syntax;
- a compiler that makes me feel stupid most of the time. It's very helpful, but feels like a friend that says "well technically..." all the time
I know Go and Rust are in different perf categories. But if you just need a good compile-to-binary lang, who cares
https://bsky.app/profile/mackuba.martianbase.net/post/3leudyet6is2f
exactly. Use the tool for the job.
I’ve seen dozens of people in my teams get onboarded and productive with GO in the matter of weeks.
Design choices can feel quirky at times but if that’s the cost of simplicity I’m willing to pay for it.
Should be pretty familiar, but with a lot of niceties that makes writing code a joy. I mean, you literally define functions using the "fun" keyword lol
I guess the only issues are a still growing library ecosystem, as well as Gradle, the build system
Hop into their Zulip chat and people will swarm to help if you give it another shot!