I think Rust is a different language from its design. I think it should be placed along the lines of C and C++ because there is no garbage collection. Why do people compare to Rust? I think the Go language should be compared to Node or Kotlin.
I’m trying to pick up a third language (I have Python, Typescript) as my hobby language and trying to pick between Rust or Golang. Part of the motivation for this question revolves around really trying to better understand why I’m picking these languages up in the first place and better aligning them with my motivation.
I’ve written a little bit of Rust and a bit of Golang, and I just feel remarkably unproductive in Rust. It’s a challenging language, and if I had more time than I do, perhaps it would actually be the best to pick up. But I code 7-8 hours per day, then about 1-2 extra each day if I’m feeling good, and those 1-2 extra hours just never feel like enough to really Grok Rust.
But what I’m wondering about is where Golang shines above Rust and roughly in what areas. Alternatively, where would you say Rust excels where Golang does not? I think that for me the types of things I want to build revolve around CLIs, TUIs, and backend web services. I also think the job market has more for Golang in the next 3-5 years, so that’s also a plus.
Anyways, any thoughts here would be great, it’s been tough with Rust and I’m just not sure if I should stick with it or go back to Go and get that feeling of greater productivity back into my spirit.
Edit: I think this was quite productive and healthy, and I think I’ll post the same in r/Rust tomorrow just to get a more holistic picture. I’m thinking I might end up going the route of doing Golang after some thinking about career, productivity, and still wanting to learn something fairly new. I might give Rust another go eventually, but for my purposes, I really think Go might just be more aligned.
Videos
I have worked on Python, Typescript and C#. But recently I see GO and Rust going so viral on the internet. Some saying the future of programming. I wanted to know which one has better opportunities, speed...
Has Rust really overtaken Go for high-concurrency backends, or is Go still the go-to for fast, reliable scaling? Would love to see your real-world experiences and what’s driving your team’s language choice these days. Share your thoughts below!
I'm at a decision point about which language to learn in depth, and I'd really appreciate input from experienced Go/Rust developers.
I'm planning to build financial systems with ML pipelines, distributed backend systems to complement them, and internal DevOps tools.
Right now, Python is the only language I'm comfortable with. I want to avoid becoming mediocre in five different languages and instead become strong in one or two core languages that will help me in the long run.
A lot of people suggest "learn both Go and Rust" but I'm hesitant because splitting focus early might slow down, especially since I've never worked deeply with a strongly typed language before.
Rust seems appealing for performance and correctness, particularly for finance related systems. Go seems extremely suitable for distributed systems, tooling, and backend APIs, which are a huge part of what I want to build.
I understand that I will need Rust at some point for sure, and that's why I'm a bit confused.
My questions are:
Do you think going all-in on both Go and Rust is a solid long term choice for large scale, infrastructure heavy backend systems, or is it better to focus on Rust only? I know I'm asking this on the Go subreddit, but I'd really value an honest, non biased perspective.
Also, what's the best route to learn Go if I decide to learn both? I'm always open to book recommendations.
Looking for some career advice. I'm currently a Full stack Dev (leaning 80 backend) who is underpaid and worried about potential layoffs at my current job.
My Day to Day is mostly APIs and Data Pipelines, with some work on the front end to surface the data. My Tech Stack currently:
-
Elixir
-
Ruby
-
JavaScript(React and a little Vue)
-
Go (Side Project Experience)
I like Elixir a lot but I'm not getting much action in the Elixir Market. I'm considering dedicating my time outside of work to learning a new language to increase my value and opportunities.
I've been lurking this sub for a while and considering Rust. I've written some Go but as a fan of functional, it seems Rust has more in common with FP than Go.
I know the job market is smaller and Rust is a hard language to learn but would love some opinions on which would y'all choose for someone like me. Would you recommend Rust or would the learning curve be too steep?
Edit: Honestly I wasn't expecting so much input. Thank you all. I decided to go with a slightly different approach. I will increase my knowledge of Go first, since I already feel comfortable with it. I just need to learn go routines, how to create certain design patterns and read up on the docs people have shared below.
There are a lot of Go jobs in my area, which would be faster than getting comfortable with python again personally. Then after finding a job, learn Rust since that is something I'm more excited about, which means I'm more driven to learn it.
Let's leave the technical details aside, more from the point of view of market demand, salary level, employment perspective, finding a quality job, language perspective, which of these two do you think has a brighter future? If someone was in doubt about which of these two to study, which one would you recommend and why?
Alright, so i have a big project i want to make solo. Its very big with about 50+ code files (expected). Its a backend project, it will work on a server, analyze files and generate data, and when a client needs the data it will listen for api requests. So i know if i want max performence and memory efficiency i would need to use rust. But im also worried about the developer experience... So i wanted to know whether i should use go or rust. I pay attention in these categories:
-
Speed (compile and runtime)
-
Memory efficiency
-
Developer experience
I dont want to start a fight here, so just lmk from your experience what is best, and if you code in both lmk what you think is best for my situation, maybe even add pros/cons?
Thanks!
Lmk if you need more info on the project for a more precise answer. P.s. i dont know either, im looking to learn one, thats what im looking for. Already have experience in programming.
edit: For every1 saying its not a big project i meant its big for me, i mentioned that so you know i, for example am not going to build it in both and see whats better.
Learning about Go can feel like Formula 1 racing, while Rust resembles a marathon. So, what's the catch? I believe anyone eager to learn should not limit themselves to one language, but rather explore both. Here’s why.
Let's assume you are learning Rust. In the initial days, you might feel that the learning curve is very steep, which can be daunting. The Rust compiler acts like a strict father who wants to make you responsible for every step you take, while still providing a layer of safety. This rigorous approach means that for building fast backends, microservices, or any networking application, Rust might seem like overkill due to the verbosity of the code. Meanwhile, Go offers the ability to achieve these tasks with sheer speed, thanks to a robust ecosystem designed for rapid development.
When examining the job market, you'll find that the overall demand for Rust, even in freelancing, is less compared to Go. What's more, there are scarcely any positions for junior or entry-level Rust developers; you're expected to have substantial experience and several Rust projects under your belt before you can secure a job.
On the other hand, let's consider learning Go. What’s the problem with focusing solely on Go? It's straightforward – "easy peasy lemon squeezy." The Go compiler acts as a loving and humble mother, encouraging you to focus solely on your goals while it handles the rest. Go boasts a higher demand than Rust, and you can become proficient and delve deep into it within a few days. However, by not learning Rust, you’re missing out on its burgeoning ecosystem, which is predicted to flourish in the future. Knowing Rust is always a plus point, as it deepens your understanding of how modern software works.
Each language caters to different preferences. If you love building products quickly, choose Go. It's ideal for those who want to develop swiftly and see immediate results. If, on the other hand, you're passionate about constructing products you can swear by, can afford to invest more time, or simply want to appear cool, choose Rust. It offers a sense of mastery and depth, appealing to those who value robustness and detail in their work.
Both technologies have their pros and cons. If you want to move fast, choose Go. If you prefer to prioritize safety, depth, and responsibility, opt for Rust.
I'm a full-stack web developer, mainly working with TypeScript. I'm also familiar with Python and Dart, and I’ve worked a bit with Go and Rust.
Recently I decided to invest serious time into a high-performance language — but I’m stuck between Go and Rust.
On one hand, I already know some Go and really like its simplicity. I enjoy how I can just focus on implementing features without constantly thinking about the language itself.
On the other hand, I’m also familiar with Rust’s borrowing/ownership concepts, but Rust still feels a bit too low-level for me. I don’t always enjoy thinking about lifetimes, borrowing rules, variable scopes, etc., instead of building stuff.
But everywhere I look, people are talking about Rust — its safety, performance, lack of GC overhead, how many governments and organizations are recommending it, and how tons of tooling (especially in the TypeScript ecosystem) is being rewritten in Rust.
So I’m torn:
Go feels more productive and comfortable
Rust feels safer, more performant, and more future-proof
For someone with my background, which language would be a better long-term investment?
Would love to hear your thoughts.
Please don’t say too simple answers like « I prefer it’s libraries » « it’s easier » or « it’s enough for me ».
Rust is regarded as a faster and safer language at the cost of productivity / complexity. Is it just that ?
Do you think Go is more a Java/python replacement or can be optimized as well to run very fast (close to Rust/C) ? Maybe is it as fast in I/O which would be the bottleneck in most scenarios ?
I’m doing my first Go program (for GCP) but I’m interested in Rust as well and I’d like pretty detailed opinions from both sides 🙂
(It can ofc be very well « it’s enough for me » btw, everyone has preferences but then some answers could just be a bit pointless if you see what I mean). I’m sure it’s a « yet another go vs rust » question and I apologize 😆
I’m right in the learning process for Rust so please forgive my warlike header :) Charter 12 of the book done and I think I understood lifetimes now, after reading the 10.3 about 3 times… The sentence „…Rather, we’re specifying that the borrow checker should reject any values that don’t adhere to these constraints…“ made it. Ahh you’r not specifying any lifetime, but enforcing the refs to have a specific lifetime. Got it.
Ok to my question. Right now we are building a relative large web project at work in go. I do the backend mainly. I am very interested in Rust, on the one hand, because I like to learn new stuff, and on the other hand, because I’v been reading a lot about the safety of Rust. So I started to rewrite the backend also in Rust in my free time, just to have a better understanding of the language and a living example I can compare to. Works great till now. I have the webserver up and running with actix, jwt is in, sqlx for database and of course serde for json.
What I learned till now in Rust is superb. Errorhandling with ?, unwarp/expected, Enums!!!, structs with initial values (nice nice), fully integrated generics and so on. All really nice features. But till now, the only security advantage I see is Null-Pointer, the match expression, that forces you to handle all cases, and the handling for maps and slices which work much cleaner with the borrow concept and can be a nightmare in go. Go has no dangling pointers, so the borrow and lifetime concept is just not needed.
So, what big security features do I miss? I know I am only half the book, but it seems like the whole borrow and lifetime concept, which makes the language really safe (compared to C++ or C), is owed to the non-GC feature, but if one is OK with a GC, there do not seem to be that much advantages over go, security wise.
As written, don’t take this as a flame post. I’m neither a Go fanboy nor a Rust hater. And our next project will definitely be in Rust, I’m luckily in a position where I can decide that. I’m just interested in your opinion, since you for sure have much more expirience in rust than I do.
Hi guys,
I am Python dev for almost 3 years. Mainly working in data engineering field. As I am self taught developer, and Python is my first language I want to expand my skills, and knowledge.
Two languages that I am considering is Rust and Go. I saw some threads about Rust vs Go, but most of them were regarding finding job in given language. I am totally not interested in learning for job, I am interested in learning to become better developer.
And I would love to get some advices, which language have a lot of concepts that I can't find in Python, and which will mabe change my perspective and in the end will make me better dev (also in Python)
What's your opinions ? Maybe there is a better candidate for 2nd language to expand skills.
Hi, Recently, I’ve decided to learn a new programming language. However, I can’t decide between rust and go. Could you simply say what are the advantages of golang over rust?
It took me less than a week to become productive with Go. It took me three months with Rust. One of the hardest parts of learning Rust is not Rust itself but the Rust ecosystem. Rust’s std lib is much smaller than Go’s, which results on having to use many third party crates. It’s not uncommon to have dozens of third party crates in a Rust project vs a couple in a comparable Go project.
I found this to be a very frustrating part of learning Rust. What third party crates should I use and which can I trust. Allot of cognitive overhead is sucked up making heads and tail of a fragmented ecosystem.
At the end of the day, both languages are very good but they are designed for different purposes. I’d recommend learning Go and then Rust.
They are quite frequently used for vastly different reasons.
Both Go and Rust compile to native code. They can both be extremely fast and performant.
Go has a smaller base language syntax. Its focus is on speed of compilation and speed of development, readability/maintainability of code, and it has language features specific for safe concurrency. It's garbage-collected, so you don't have to worry about memory management at all. It has rich support for web-based programming tasks built into the standard library.
Rust has a large and robust language with a much deeper (read that as "more useful" or "more cluttered", depending on your needs) syntax. Its focus is on non-garbage-collected memory safety and speed of code execution. Compile times can be MUCH slower than Go, but depending on what you're doing execution speed can be MUCH faster, especially if you are calling any standard C/C++ libraries.
If you're looking to do standard business or web apps, want a simple to learn language with incredibly fast development cycles, and have no need to call C/C++ libraries (or don't care about a few hundred millisecond call time), I'd say pick Go.
If you want to do game development or embedded systems development, care about compiled code size, and must squeeze every possible drop of performance out of the hardware while not caring that compilation times can end up higher than C++ code, then choose Rust.
Hello everyone!
I’v mainly dabbled with python and web development, but after some time, I’ve gotten into servers, Linux, self-hosting, etc. I want to learn a new programming language that best suits automation, CLI, capable of being the backend of a website, and stuff like that.
I’m looking into two options. Go and Rust. What made you guys choose GO, and what are the major benefits of it? From what I can tell, a big pro is that it’s easier to learn and get started on. I’ve also heard that C and C++ developers are moving to Rust, so that’s also something Rust has over Go? Thanks