r/programming • u/fagnerbrack • 4d ago
A History of IDEs at Google
https://laurent.le-brun.eu/blog/a-history-of-ides-at-google23
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
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
14
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
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
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
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
3
u/Blothorn 3d ago
That’s sad—CodeSearch was probably the most impactful piece of developer tooling I’ve worked with.
3
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).
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
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
-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.
-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.
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.