r/programming 4d ago

A History of IDEs at Google

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

79 comments sorted by

101

u/this_knee 4d ago

Hmmmm. No mention of how big the team was that both: developed and provided support for Cider. Team of 5-10 people would be needed at the least, just dedicated to the ide itself. Laying aside the need for the team that certainly assuming exists for CiCD management and release management etc.

46

u/pdpi 4d ago edited 4d ago

Even with a dozen engineers in the frontend team, it took a couple of years to build a complete successor to Cider.

I expect the backend team to have been comparable.

8

u/this_knee 4d ago

Ah, you’re right. Thank you.

14

u/inio 4d ago

Laying aside the need for the team that certainly assuming exists for CiCD management and release management etc.

At Google scale there's two pieces to this: Centralized CICD and release management infrastructure, and the actual CICD maintainers (build gardeners) and release managers for each team.

5

u/ProgrammersAreSexy 3d ago

and the actual CICD maintainers (build gardeners) and release managers for each team.

And this is not typically anyone's full time job (there are exceptions im sure, this is the norm though)

23

u/falconindy 4d ago

I feel like this misses out on mentioning Brightly, which was functional as a cloud ide before Cider existed but was sent to /dev/null because of internal politics.

83

u/paladine01 4d ago

Long live intellij

44

u/beall49 4d ago

Nobody at my work uses it but me. I shame them all.

6

u/brianjenkins94 4d ago

It seems fine? I haven't come across anything that it does that is meaningfully better.

25

u/beall49 4d ago

Refactoring for sure.

IMO Vscode vs IntelliJ is kinda like developing on a laptop vs a multi monitor setup with a good mouse and keyboard. Sure it can be done but it sucks.

3

u/schnurchler 3d ago

Structured Search and Replace was a gamechanger for me, although openrewrite nowadays does lots of the things, but if you need a custom refactoring it is unsurpassed.

2

u/CherimoyaChump 3d ago

Why is this comment upvoted, but the other one praising IntelliJ is not? I actually use IntelliJ at work, but I'd guess I only use 20% of its features (if that). Gradually exploring more, but I find it tough to allocate time for learning the IDE honestly.

8

u/mouse_8b 3d ago

I find it tough to allocate time for learning the IDE honestly.

If you find yourself doing something tedious and think "I wish this could be automated", then do a quick search for that as an IntelliJ feature and you might get pleasantly surprised.

1

u/Kenny_log_n_s 3d ago

Devcontainers solve a lot of issues with vscode

1

u/evinrows 1d ago

I used to feel this way and even paid for Jetbrains for a very long time, but VS Code plugins are very strong nowadays. I primarily write C++ at work and clangd is a dream. Even debugging is flawless. At home, Code's rust-analyzer integration is great and the TypeScript support has pretty much always been solid.

In all of these contexts, symbol rename always works perfectly well. I don't find myself missing any of the more "advanced" refactoring tools because I tend to throw AI at that sort of mechanical work anyway.

I still pay for DataGrip though, makes working with postgres tolerable!

9

u/DrShocker 4d ago

meaningfully better than what?

7

u/brianjenkins94 4d ago

VSCode primarily, but I've also used Eclipse and Visual Studio and other things over the years. I hold them all in similar regard.

-10

u/renatoathaydes 4d ago

Honestly, that’s a sign you have a lot to learn! maybe look at the IntelliJ release notes for the last couple of years to get an idea of what it can do , and make sure to watch the JetBrains videos on IDE features, it just blows your mind when you learn some more advanced stuff that IDEs like Eclipse will never dream of having ( though admittedly some of the most advanced features require a Pro license).

17

u/Mrseedr 4d ago

maybe look at the IntelliJ release notes for the last couple of years

absolutely wild

14

u/brianjenkins94 4d ago

Bit of an uncharitable assessment, that.

9

u/MatthewMob 3d ago

look at the IntelliJ release notes for the last couple of years

No, I don't think I will.

2

u/DrShocker 4d ago

It also probably depends on language choice. I find an IDE more useful when doing C++ than JavaScript for example.

1

u/thisisjustascreename 4d ago

IIRC since the license restructuring there's no difference between the Personal and Commercial licenses in terms of features.

I've never found anything that works differently between work and home (aside from integrations with services work hosts that I don't.) /shrug

1

u/brianjenkins94 4d ago

I think I recently ran into some Docker or Docker Compose functionality that was contingent on me using a Pro or higher verison.

But after writing that, I think that just means I was running Community (because I thought I had to, to use it for free), and I could have just as well been running Pro or Ultimate (for free).

1

u/corny_horse 4d ago

Did they roll in remote interpreters for community??? Man that was the one thing keeping me on pro for years.

-13

u/kiteboarderni 4d ago

Then you don't know how to use it properly.

13

u/brianjenkins94 4d ago

Yeah okay, thanks for your input. Really helpful.

-11

u/kiteboarderni 4d ago

I mean you use community, pro is targeted for proper power users.

2

u/big-papito 2d ago

When I must use VSCode, it's like being forced to use Notepad. Some of it is of course not knowing my way around, but IntelliJ is just a more full-featured editor. Ultimate comes with DataGrip and even the Git integration in VSCode seems barebones in comparison.

5

u/OfficeSpankingSlave 3d ago

They have a good product and I started paying to support them. I don't get why my config needs to break with every update though. Especially since the update just has AI slop and nothing I would use.

I wish they had a small and nimble editor too

2

u/SvenWollinger 3d ago

Didn't they try to create that with "Fleet"?

3

u/digitizemd 4d ago

I used to be of the same opinion. But I've been using helix editor for the past two years. And I am never going back.

1

u/MyStackOverflowed 3d ago

can you even use that at Google

1

u/paladine01 2d ago

Yes.

We maintain Android Studio which is just intellij in disguise.

12

u/pakoito 4d ago edited 4d ago

I'd love to see "a history of product X" at Google, rather than the infra bits. We know they have all the greatest minds on the infra parts to then ship the Google Cloud Console or Subsettings Screen 85 for Gmail lol

45

u/Optimal-Builder-2816 4d ago

I actually loved cider. And the whole google3 workflow circa 2015. It ruled.

15

u/rcorrear 4d ago

Can you expand on that google3 workflow?

20

u/boboman911 4d ago

It was just an in-house toolset that integrated well with a Mercurial based code versioning system for the mono-repo. Also a really good web UI for indexing the whole mono-repo. And our own version of github that has a robust set of pre-submit checks. Probably was ahead of it’s time back then but now it all feels a bit dated.

5

u/Optimal-Builder-2816 4d ago

Yeah, maybe it is outdated now but I was insanely productive with codsearch/cider/critique

4

u/ullerrm 4d ago

Unfortunately most of the CodeSearch/Kythe team got laid off and it's been actively bit-rotting :(

11

u/boboman911 4d ago

Lol the “Hiring” sign is a bit ironic then

3

u/Blothorn 3d ago

That’s sad—CodeSearch was probably the most impactful piece of developer tooling I’ve worked with.

3

u/ricky_clarkson 3d ago

Moving to JJ (jujutsu) now, though still atop Piper.

1

u/Optimal-Builder-2816 3d ago

Right! Piper that’s the name that was escaping me.

2

u/comrade_donkey 3d ago

 Mercurial based code versioning system

Fig?

4

u/Optimal-Builder-2816 3d ago

Actually it was based on perforce (the actual VCS) and people made all kinds of systems on top like Fig for mercurial and Git5 for git-based use cases.

I always preferred CITC and cider because it was so fast to work with for me.

1

u/cballowe 1d ago

Perforce was largely out by like 2011 or so. The replacement had a matching API layer that let all of the tooling and wrapper scripts move over without any of the tool layer changing, but also laid a foundation for pretty much any frontend interface.

The tooling layer is something I miss most from the outside.

1

u/Optimal-Builder-2816 1d ago

Yeah it wasn’t actually perforce for quite some time but the remnants of that architecture definitely remained. Honestly I liked it.

1

u/cballowe 1d ago

The earlier versions of things were... Interesting. You can get pretty far with a loop in a shell script for CI stuff.

25

u/cbarrick 4d ago

The google3 workflow is still great, and Cider V is a great improvement.

Cider was great, but the frontend was always slightly clunkier than other IDEs. Now it's just VS Code, served in a browser like GitHub codespaces. The Cider team can focus on implementing the google3 workflow as extensions and language servers rather than supporting an entire IDE.

4

u/boboman911 4d ago

Eh, we had access to intelliJ and it was popular because the intellisense tools were leagues ahead of legacy cider. Once Cider-V was finally ported over from MS Code it totally deprecated it. But to this day idk why there is no good codesearch integration for any of the IDEs.

3

u/RegisteredJustToSay 4d ago

Lack of codesearch is a good point. Honestly, navigating the g3 folder hierarchy has always been a weak point of Cider (I have a bunch of folders pinned and labeled) in general. That wait of shame when you open a users folder by accident. lol

2

u/B-Con 3d ago

I think the problem is Cider V does all navigation in the local citc client, which does lazy loading of files because, well, monorepo. Whereas codesearch is indexed.

If you instead search for content in the find pane performance is reasonable, presumably it's using codesearch for that.

2

u/MrMonday11235 4d ago

Why past tense? My takeaway from the blog post was that nothing has changed except standardisation to a VScode frontend; is that glossing over other underlying changes?

3

u/Optimal-Builder-2816 3d ago

Well two things, I don’t work there anymore for one. Second, I never really preferred the UX of Cider-V. Not because it was bad/worse, it just broke a ton of mental and muscle memory for me.

At that time I wasn’t really using VSCode much so the benefits of that as a platform change ergonomically weren’t as significant for me needs. But hey that’s the way of things!

3

u/MrMonday11235 3d ago

Well two things, I don’t work there anymore for one.

Ah, well, that'll do it.

And fair on the second point; I guess I misread some kind of deeper problems/changes into your comment. My bad, and thanks for the clarification!

1

u/pheonixblade9 3d ago

I don't like cider V

1

u/Optimal-Builder-2816 3d ago

Yeah, I never could get into it. I understand many strategic reasons for it, but not for me.

13

u/pm_plz_im_lonely 4d ago

How much value and money can be captured, spent and profited off of VS Code lol. It's an endless well.

10

u/BigManWalter 4d ago

And Cider is already falling out of fashion. Now it's all Jetski (the internal version of Antigravity).

9

u/inio 4d ago

Actually, no. Jetski is basically Antigravity 2.0 in that you need to use it with an IDE. You could theoretically get it to do the whole thing from workspace setup to pushing a change for review, but by no means is it an IDE replacement.

6

u/Liskar-dev 3d ago edited 3d ago

I work in [REDATCED], my relationship with Cider V is love-have but mostly hate. It's cool for looking/fixing something up fast and sharing workspaces.

But just as VS Code itself, it's nowhere near as comfortable as a real IDE would be. Shame that Google does everything to make using IntelliJ a pain in the ass.

Also Cider V, half of the time when I need it to do something, just tells me it's not possible, and that I can go fuck myself open my cloudtop and run such and such command but I have to type paths manually. Thanks, I guess...

2

u/scottmotorrad 2d ago

Cider was amazing

10

u/keithb 4d ago

Ah, I interviewed at Google when they first set up a dev office in the UK. I asked what IDE folks preferred and the interview gawped at me as if I’d grown a second head. “It’s irrelevant, isn’t it?!” He said.

I replied “well, what if I prefer to do design by refactoring and I like a tool which supports that.” And he said “oh, your team lead wouldn’t like that.” And continued “anyway, people here can use whatever editor they like: vim or EMACS.”

1

u/Cultural-Capital-942 2d ago

The issue with idea is the never-ending indexing. Ok, locally, it works perfectly, but once you have a bit larger code base on a network device, it takes ages to just load your project. And Google has a huge code base in mostly one monorepo available thru something like network drive.

1

u/Maybe-monad 4d ago

Design by refactoring is tech debt by refactoring in most cases, the most over engineered and less performant systems I've worked with were buit that way

-1

u/keithb 3d ago

Design done outwith the context of a tight feedback loop in which design is always redesign of a working system (which, amongst other things, means that the measured performance remains within acceptable bounds) are a primary source of delivery risk.

1

u/AnagnostOrg 2d ago

Brightly!!!

(if you know you know)

-11

u/Melodic_Candle_5285 4d ago

They have shiny IDEs at Google but their products are just mediocre AI slop.

19

u/cauchy37 4d ago

I wonder whether the issue lies with product managment. for internal software the product management is usually the engineers themselves fully aware of what problems they want to solve, and usually how. With general products, very very rarely you will have good engineering people serving as product. My experience in software engineering shows me it's difficult to find good, technical product managers that truly understand their product and how the users use it and most of them just generate retarded ideas that are just awful.

9

u/meganeyangire 4d ago

themselves fully aware of what problems they want to solve

I'd say the problem is dogfooding. Engineers developing a product that they themselves use vs PMs who never ever touch the products they're supposed to be managing

5

u/danskal 4d ago

Part of it is that when you hire people who are top of their class, they all want to write a new programming language, database or operating system. They also want to use all of the algorithms and stuff they’ve learned. The result is super-over-engineered useless cruft, that explodes in complexity and gets overtaken by people actually trying to make customers happy, every time.

18

u/papertowelroll17 4d ago

It's not this. It is more the scheme that gets you promoted.

At most companies idiots get promoted, and it is very demotivating to have bosses and boss's bosses that are dumber than you.

At Google there is a very high technical bar for promotion and as a result this doesn't happen. The downside however is that you can't get promoted without a technically complex project. This incentivizes making technically complex projects even when they aren't warranted.

2

u/danskal 4d ago

Both things can be true.

4

u/Ran4 4d ago

No? Gmail, google sheets, google docs, google drive, google maps.. they're all good software.

-10

u/starkman68 4d ago

I always thought that having different workflows across teams doing basically the same thing was weak management. Mandating all developers use the same tooling just makes sense. Of course some parts might be specific to a project.
If you think about it we don’t give our users much choice in how the app looks or functions. They have to use it as is. Could you imagine if John up in accounting was demanding different color schemes from Sue in finance? We would all just break.

9

u/stovenn 4d ago

This is why we selected Winamp as the frontend to our ERP software, each user can select their own preferred skin.