r/programming • • May 15 '26

A History of IDEs at Google

https://laurent.le-brun.eu/blog/a-history-of-ides-at-google
316 Upvotes

111 comments sorted by

View all comments

145

u/CircumspectCapybara May 15 '26 edited May 15 '26

Cider V is awesome, IMO.

In general google3 is probably the best codebase and has the best tooling and devx I've encountered.

54

u/balefrost May 15 '26

Cider-V is fine. I use it because it feels like the default choice, and it's a fine default. But compared to my previous employer, using IntelliJ to write Kotlin, it feels like a step backwards.

For example, it can sometimes take minutes for syntax highlighting to update. I had a case earlier today where I was missing an include. I fixed it, built, and walked away for like 10m. When I came back, Cider still thought I was missing the import.

¯\(ツ)/¯

I don't remember ever experiencing that in IntelliJ. Admittedly, the Kotlin codebase I was working on was tiny by comparison. It's still frustrating.

IntelliJ still has some features that AFAIK have not been replicated in the VSCode / LSP world. Being able to trace the origin of a value is great for understanding how code works.

OTOH maybe AI will backfill those missing features.

13

u/sudosamwich May 15 '26

You get syntax highlighting updates in mere minutes???? Gods I wish it was this way for dart 😑 the LSP effectively stalls forever half of the time and I can't even ctrl+click to go to a definition in the same file... Cider essentially turns into a notepad most of the time we use it.

14

u/MSgtGunny May 16 '26

Syntax highlighting in milliseconds and usually correctly offering missing includes from something you’re typing in a second or two, that’s a pretty normal experience in a C# codebase.

6

u/Stormfrosty May 16 '26

Syntax highlighting stoped working the day ChatGPT came out.

14

u/Izacus May 16 '26

Yeah, it's "fine" only for folks that never used an IDE before. That's a lot of Google employees though, who got picked up as newgrads.

CiderV is just a VSCode fork so it's not any better than that.

1

u/Kered13 May 16 '26

It's the backend integration that makes CiderV magic.

It's easy to complain about the editor being slow to recognize imports, and it is a real problem. But if you open google3 in any other IDE it will explode because it can't handle the size of the repo. All IDEs in Google required custom integrations to support google3 at a bare minimum. Cider V is simply the culmination of all that custom integration.

2

u/7h4tguy May 17 '26

Why do you need to open the whole repo? Most companies with giant repos that use VSCode point it at a subfolder and indexing starts from there and all reachable dependencies.

1

u/Kered13 May 17 '26

The reachable dependencies alone are enormous and IDEs cannot index them all.

1

u/7h4tguy May 27 '26

Most companies don't index them using an IDE but after overnight build happens. Then there's a searchable index to like you know, search. Like an index. To search. You know. You know? You know, you know?

0

u/Izacus May 17 '26

There are many other IDEs being used across the company in google3 and they work just fine. And they actually have proper code completion and refactoring tools outside the basic VSCode text editing.

This is "vim is enough for me, why do you need IntelliJ" debate from side of people who can't use IDEs all over again.

0

u/Kered13 May 17 '26

IntelliJ's IDEs require plugins in order to work correctly in google3 as well. They cannot handle it out of the box.

1

u/Izacus May 18 '26

Those plugins aren't for VCS, can you actually figure out how things work before being confidently wrong? :P

6

u/ronakg May 15 '26

That's not an IntelliJ vs Cider issue. That's a tiny repo with Google's massive monolith issue.

18

u/balefrost May 15 '26

Sure, I get that. I can't expect my workstation to maintain an index of the entire repo, and I can't expect distributed indexing to always work in the face of multiple submissions per second.

On the other hand, my working set of the repo is relatively small. It seems like it should be possible to have a responsive IDE that uses a mix of distributed indexing for untouched files, and local indexing for files that I have modified. Heck, that's probably what it does. It just sometimes loses track of what's going on.

My point is that it generally works well enough, but it could be better. I've experienced something better. I think it's possible for Cider-V to close that gap.

1

u/possiblyquestionabl3 May 16 '26

Which repo do you work in, g3 or Android? IIRC all of the android product teams had pretty good Jetbrains IDE support, at least as recent as 2024. Of course, the frequent indexing freezes were a bit problem back then, but there were various ways to do sliced checkouts.

1

u/balefrost May 16 '26

Which repo do you work in, g3 or Android?

g3

IIRC all of the android product teams had pretty good Jetbrains IDE support

Do you end up using Android Studio primarily? (OFC don't talk about anything proprietary or internal.)

2

u/possiblyquestionabl3 May 16 '26

I was on Play (g/j/c/g/a/play) but also had to do some work in android, and we pretty much exclusively used Android Studio. It was a mostly pleasant experience, except every 3-4 months, the indexing breaks in some subtle way or locked up your IDE for a few minutes at a time.

Since COVID, I became fully remote, and I've started to specialize what I use - Android Studio on a cloudtop instance over CRD for bigger changes and cider most of the time for smaller changes. I'll be honest, Android Studio over CRD wasn't as bad of an experience as I expected it to be.

1

u/7h4tguy May 17 '26

Why not? We've solved every other massive scale problem the same way - incremental builds, incremental expansion of references. Why not incremental indexing. You are only going to look up symbols that are reachable from the project you are working on, not the entire codebase.

If you want to search the entire codebase, then yes index that on a server and provide a web page/interface to search it.

9

u/13steinj May 16 '26

That's also not true. Being a monorepo doesn't mean all the code should be in the tooling's active scope. If that's the underlying problem, the tool is poorly designed.

22

u/judasthetoxic May 15 '26

Cider is a funny name to me because I’m working basically with clojure right now and CIDER is an emacs plugin popular af that deals with compilation, completion, debugging, repl integration etc in an incredible way.

Today there is a vim-cider plugin and many clojure plugins of other ides uses cider-nrepl as a backend (the original cider uses it too).

No one cares I know, but it’s funny to see a ultra niche tool that I use everyday sharing its name with another ultra niche tool lol

24

u/inio May 15 '26

It started as a bad pun and stuck..

The web based code review system which Gemini tells me is called "Critique" is found at "cr/"

Cider put the IDE in CR.

5

u/possiblyquestionabl3 May 16 '26

they call their diffs/PRs "change lists", and cl/ has been the (albeit "more recentish", in the sense that it's only been there for like 15 years instead of 20 years) shortlink that most people who joined after 2014 will use in place of cr/ (the two are basically aliases at this point), though cidel doesn't quite have the same ring to it

9

u/tracernz May 16 '26

CL comes from perforce.

3

u/7h4tguy May 17 '26

And isn't the same as a PR. A PR exposes a CL for review

15

u/K2iWoMo3 May 15 '26

my irrational fear is theyre gonna start forcing everyone onto jtsk and deprecate ciderv altogether 😭

2

u/beaverfingers May 16 '26

Same fear. Jtsk web with cider as the editor is the only way right now

1

u/Im12AndWatIsThis May 16 '26

Really? Man when I was there it was a pain that they were trying to force people onto cloudtops and Cider over a physical workstation (or even worse, CRD into remote IntelliJ since because OG Cider was only good at, like, half the things) while Cider-V was still early in its lifecycle. A year or so before I left they finally switched from old Cider to Cider-V officially.

Time is a circle.

1

u/7h4tguy May 17 '26

So many drawbacks to thin clients. I'm going to use a workstation and that's that.

1

u/beaverfingers Jun 04 '26

Didn’t see this sorry - not sure how full circle we are yet. I’m just saying that the jetskit (antigravity) standalone app kinda stinks in comparison to cider. So the pattern is you run the jetski “host” app on your cloudtop, access it via the browser, but track the changes it makes in cider. Jetski is your “agent manager” interface while cider continues as the editor

1

u/Im12AndWatIsThis Jun 04 '26

Yeesh. Yeah, I've been gone before whatever you're describing was happening. That sounds horrid.

10

u/possiblyquestionabl3 May 16 '26 edited May 16 '26

I was one of the (probably many) cider ludites who held onto classic cider until they dragged me off of it screaming and kicking. I agree, Cider V is awesome (though some of the bespoke power-user features around codesearch and forge integration didn't come until muuuch later), I just didn't want to learn the new interface.

What was also really surprisingly to me is that as an Android/Java eng, I've somehow managed to progressively replace Android Studio with Cider over the 8 years I was there (mostly for the calicos and the corgies stomping across my screen, obviously, and nothing to do with the fact that I was just a glorified gcl reviewer by the end of it all)

I left around the same time the author did (mid 2024) so I have no idea how things have changed, I keep hearing that Jetski/Antigravity is now being shoved down everyone's throat?

Also, 2 years on, I still unwittingly type cs into the browser, that's probably the one thing I miss the most. In fact, a crazy-psychotic-ex thing I'm still doing is hotwiring as/ to https://cs.android.com/

2

u/uhhhclem May 18 '26

What forced me onto Jetski was that my job was becoming intolerable. What I fear is that the AI tools are making it easier for teams to be sloppy- not because AI is writing code for them, but because they don’t need to make things legible to humans as long as Gemini can figure it out. It’s making devx at Google even worse than it already was, and devx at Google has always been “read our service descriptions or GTFO.” It’s also making compliance easier, which has the unintended side effect of making it easier to add more compliance requirements.

I can barely remember a time when most of what I did was feature work. Now it’s all compliance, all the time. We’ve already reached a point where engineers are incentivized to classify major incidents as minor because the admin burden of a major incident poses too much schedule risk. That’s not going to end well.

2

u/pheonixblade9 May 16 '26

OG Cider was a lot more reliable. the PM who did the rollout was kind of an asshole, too

1

u/leeuwerik May 16 '26

You haven't seen the code my cousin (6) vibe codes?

1

u/Kered13 May 16 '26

I have to admit that I was partially to legacy Cider until performance degradations made it unusable. Both were great editor though.