If you need custom internal tooling because you've outgrown the ill-advised practice adopted early on and refuse to fix the problem, it's not an environment I would enjoy.
TBH I'll +1 /u/balefrost, I was anti-monorepo until joining (and I still think most places probably shouldn't do it) but it does seem to work very well for Google.
Kind of paradoxically, I think the tradeoffs start being worth it more and more as your codebase grows larger, assuming you keep up with the tooling required (which Google has done pretty well).
One of the things Google needs to figure out, at some point, is how to disentangle a lot of their products. Maybe they can still do it with a monorepos, but the downstream effects of their current development practices is obvious outside the company. I want to stop seeing 10 Google apps updated with no release notes and no new features. I also want to see Google products be supported and improved long-term instead of building new products.
I'm still waiting to be able to see my Google Voice messages in Chat, like I used to in Hangouts. I'm still waiting for a proper YouTube Music app on my TV, like Google Music had. These are not new products, and there's no good excuse for them to still be playing catch-up to their predecessor years after release.
Google has become a monstrous laboring beast. I have to conclude that something about the development practices makes developing new features a massive undertaking.
Beyond that, Google's developer tools outside of the company don't benefit from internal use.
For example, the Gemini plugin for IntelliJ was broken for weeks. Not a little broken, I mean a LOT broken. Eating up memory and CPU cycles when idle, and having to click the very edge of the input box to activate it. It took a discussion on the marketplace, and me finally realizing that the placeholder text was blocking the text input for the team to fix it. Previously, they had maintained that the problem couldn't be reproduced despite it being incredibly obvious and mentioned by hundreds of reviews.
It has become increasingly obvious that whatever Google is doing is NOT working. Innovation, updates, and quality are all down. Unless Google figures out a way to become more agile, they risk losing many areas in which they have an edge.
That's fine, you do you. I'm not saying that you're wrong. I'm just saying that I was skeptical. Having lived in it, I now think it works quite well.
Most companies develop some degree of custom internal tooling. When you're a large-scale company, you can afford to develop comparatively large-scale internal tooling.
I would have recommended it all the way up until a few months ago when AI started being mandated everywhere. Apparently just selling the shovels wasn't good enough.
I'm sticking around for now just because the money's still good and I don't really feel like looking around for a new job, but yeah I think I'd enjoy working at a bank ~roughly the same otherwise.
It's not cool anymore for sure and nobody cares if you're Googler #54,987 and their core products are constantly getting worse but this post paints a great internal portrait of being an employee there. The more common IDE histories stories are like 'New executive X has mandated everyone use VSCode now' or 'You can use what you want but only X is supported by IT' whereas Google is here investing millions into custom tooling and then pitching developers on its merits.
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.
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.
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.
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
Which-World-6533@reddit
This is one of the many reasons I could never work at Google.
I remember a time when it was cool to work at Google.
Now it's just the same as working for a bank.
omniuni@reddit
I can't stand monorepos.
balefrost@reddit
I was skeptical before I joined, but it works quite well. They've built a lot of tooling to make it work.
omniuni@reddit
If you need custom internal tooling because you've outgrown the ill-advised practice adopted early on and refuse to fix the problem, it's not an environment I would enjoy.
rpropv@reddit
TBH I'll +1 /u/balefrost, I was anti-monorepo until joining (and I still think most places probably shouldn't do it) but it does seem to work very well for Google.
Kind of paradoxically, I think the tradeoffs start being worth it more and more as your codebase grows larger, assuming you keep up with the tooling required (which Google has done pretty well).
omniuni@reddit
One of the things Google needs to figure out, at some point, is how to disentangle a lot of their products. Maybe they can still do it with a monorepos, but the downstream effects of their current development practices is obvious outside the company. I want to stop seeing 10 Google apps updated with no release notes and no new features. I also want to see Google products be supported and improved long-term instead of building new products.
I'm still waiting to be able to see my Google Voice messages in Chat, like I used to in Hangouts. I'm still waiting for a proper YouTube Music app on my TV, like Google Music had. These are not new products, and there's no good excuse for them to still be playing catch-up to their predecessor years after release.
Google has become a monstrous laboring beast. I have to conclude that something about the development practices makes developing new features a massive undertaking.
Beyond that, Google's developer tools outside of the company don't benefit from internal use.
For example, the Gemini plugin for IntelliJ was broken for weeks. Not a little broken, I mean a LOT broken. Eating up memory and CPU cycles when idle, and having to click the very edge of the input box to activate it. It took a discussion on the marketplace, and me finally realizing that the placeholder text was blocking the text input for the team to fix it. Previously, they had maintained that the problem couldn't be reproduced despite it being incredibly obvious and mentioned by hundreds of reviews.
It has become increasingly obvious that whatever Google is doing is NOT working. Innovation, updates, and quality are all down. Unless Google figures out a way to become more agile, they risk losing many areas in which they have an edge.
balefrost@reddit
That's fine, you do you. I'm not saying that you're wrong. I'm just saying that I was skeptical. Having lived in it, I now think it works quite well.
Most companies develop some degree of custom internal tooling. When you're a large-scale company, you can afford to develop comparatively large-scale internal tooling.
omniuni@reddit
It's not having the internal tooling that's the problem, it's why.
rpropv@reddit
I would have recommended it all the way up until a few months ago when AI started being mandated everywhere. Apparently just selling the shovels wasn't good enough.
I'm sticking around for now just because the money's still good and I don't really feel like looking around for a new job, but yeah I think I'd enjoy working at a bank ~roughly the same otherwise.
sisyphus@reddit
It's not cool anymore for sure and nobody cares if you're Googler #54,987 and their core products are constantly getting worse but this post paints a great internal portrait of being an employee there. The more common IDE histories stories are like 'New executive X has mandated everyone use VSCode now' or 'You can use what you want but only X is supported by IT' whereas Google is here investing millions into custom tooling and then pitching developers on its merits.
nfactorial@reddit
FWIW Laurent's blog post links to Hacker News: https://news.ycombinator.com/item?id=48073979 which has a lot more on-topic productive discussion from people who worked there.
CircumspectCapybara@reddit
Still pretty cool. It might not be the highest paying among the FAANGs, but it is one of the most well regarded.
sweetno@reddit
What reason?
Tall-Introduction414@reddit
Their entire business model is built on selling ads and destroying everyone's privacy. Evil incarnate.
davispw@reddit
Disagree. It’s still pretty awesome.
CircumspectCapybara@reddit
Cider V is awesome
balefrost@reddit
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.
ronakg@reddit
That's not an IntelliJ vs Cider issue. That's a tiny repo with Google's massive monolith issue.
balefrost@reddit
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.
sudosamwich@reddit
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.
K2iWoMo3@reddit
my irrational fear is theyre gonna start forcing everyone onto jtsk and deprecate ciderv altogether 😭
judasthetoxic@reddit
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
inio@reddit
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.
nnomae@reddit
TLDR: They couldn't get everyone to agree on a common editor so they forked VS Code and now most people are happy with it.