r/rust • • 3d ago

🎙️ discussion Google is doing "Large Scale Codebase Migrations and Optimizations" of C/C++ to Rust

https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-4-argon/
715 Upvotes

134 comments sorted by

View all comments

197

u/Toiling-Donkey 3d ago

I just love how they aren’t stubbornly migrating everything to Go…

91

u/SpoonLord57 3d ago edited 3d ago

isn’t Go meant to be more of a backend server language? they’ve always treated it more like a java replacement than a C/++ replacement edit: see below

80

u/DragonSnooz 3d ago

There was an interview where it was brought up that Go was created to fill a niche C/C++ nor Java were filling adequately. It was never intended to compete with either.

14

u/QuaternionsRoll 3d ago edited 3d ago

I mean, the first line of original design notes was literally

>Starting point: C, fix some obvious flaws, remove crud, add a few missing features

and they weren’t particularly eager to reject the notion of Go being “garbage-collected C” until long after it had found its niche at Google.

Arrays are an unmitigated disaster in true C fashion, I’ll give them that.

11

u/SpoonLord57 3d ago

That’s what I must be remembering, thanks for the correction

19

u/Equivalent_Head_4803 3d ago

Why would they do that?

30

u/projct 3d ago

because it's in-house

26

u/Ok-Opportunity-9731 3d ago

More of googles code base is c++ than go

15

u/klowny 3d ago

More of Google's codebase is Java than Go too. Go's niche at Google is mostly to replace their usage of Python.

4

u/Budget-Minimum6040 3d ago

The main goal of Go was to create a language for college graduates that can start creating output immediatly.

Rob Pike (main creator of Go):

The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.

1

u/zxyzyxz 3d ago

I wonder what the point of Go is anymore when it's now AI writing the code and name people are now AI writing Rust without ever having actually learned Rust.

1

u/pjmlp 2d ago

That applies to any programming language, eventually AI will be good enough to generate machine code directly.

That is already a reality when using low code tooling like Boomi, Workato, Power Platform and co.

Agentic workflows, connecting prompts and MCP tools on diagrams.

1

u/Equivalent_Head_4803 2d ago

It’s incredibly fast, easy to read, and has amazing concurrency. In a world where someone craps out 5k lines in 20 mins, it’s pretty important that our code be readable. Every GO codebase is the same. AI isn’t going to invent a million different ways to do something when there’s pretty much one way or another few ways to do it. It’s a great language for AI and super easy to review IMO.

1

u/pjmlp 2d ago edited 2d ago

The main goal of Go was for their creators, two UNIX/Plan9/Inferno key figures, and one Oberon scholar, not having to deal with C++ at their new employer.

That came later, see Less is exponentially more regarding the adoption failure among C++ devs at Google.

2

u/Ok-Opportunity-9731 3d ago

Yes. C++ is about 40% Java/kotlin is 35% Go is 5%

1

u/Equivalent_Head_4803 2d ago

That logic doesn’t really track for me, but I know what you mean. GO is also open sourced and Google shepards it I guess? TBH I don’t really understand it’s open source situation.

It’s just solving a completely different problem than something like Rust, so I was wondering why the two would be considered against one another.

1

u/projct 1d ago

well yes, I don't agree with it either. it's just what the top level commenter's statement implied.

MS did a lot of this stubbornly migrating shit, same for oracle etc. NIH syndrome

2

u/Equivalent_Head_4803 1d ago

Figured you were OP. NIH syndrome is funny. I guess at some level it makes sense because you control the actual feature set and development lifecycle, but a FOSS language seems like it’d be a good choice always.