5 ms·
> However, as you start pushing beyond "scale" Go is designed for Like Google scale? That's what Go is designed for.
by lostjohnny 7y ago
> However, as you start pushing beyond "scale" Go is designed for
Like Google scale?
That's what Go is designed for.
- pjmlp 7y agoYes, that is why Google mostly uses Java and C++ instead.
- geodel 7y agoOr it may be because Java and C++ are much older so lot more code is written in those. And companies do not replace working code just because new language developed in house has few more features.
- pjmlp 7y agoExcept that lots of new code also get written in those languages. Google's major Go projects appear to be gVisor, Android GPGPU debugger, Fucshia's TCP/IP stack and volume management tools and the download server as it was done by the Go team. https://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html https://commandcenter.blogspot.com/2012/06/less-is-exponenti...
- xxxpupugo 7y agoYou forgot kubernetes
- pjmlp 7y agoI did indeed. https://archive.fosdem.org/2019/schedule/event/kubernetesclusterfuck/ https://archive.fosdem.org/2019/schedule/event/kubernetesclu...
- geodel 7y agoFrom description: "In this talk we explore the devastating effects using object oriented antipatterns in go while building programs in a monorepo. ... Unknown to most, Kubernetes was originally written in Java. If you have ever looked at the source code, or vendored a library you probably have already noticed a fair amount of factory patterns and singletons littered throughout the code base. " So basically writing Java in Go lead to clusterfuck codebase.
- smarterclayton 7y agoThis is a joke talk (hyperbolic) Most of the codebase problems in Kube are: 1. we depended on half the Go ecosystem at one point (docker, grpc, etcd, a few others) which is hard to do with dependencies in go (few standardized libraries) 2. performance of serialization mattered and JSON and protobuf were still raw at the time I don't think Kubernetes is any worse than any other large (3M+ LOC), relatively young codebase I've seen on average.
- lostjohnny 7y agoThat's why they created Go, to get rid of Java and C++ for things like download.google.com They are not scalable for Google scale and are not maintainable at google scale. That's why Google C++ guidelines basically disallow everything that is problematic in C++ and enforce a style guide to > Avoid surprising or dangerous constructs. C++ has features that are more surprising or dangerous than one might think at a glance > Avoid constructs that our average C++ programmer would find tricky or hard to maintain. C++ has features that may not be generally appropriate because of the complexity they introduce to the code > Be mindful of our scale. With a codebase of 100+ million lines and thousands of engineers, some mistakes and simplifications for one engineer can become costly for many.
- pjmlp 7y agoYeah, better tell that to the Android, ChromeOS, Fuchsia, Maps, Search and Flutter teams.
- lostjohnny 7y agoYou are sidetracking the conversation with a troll attitude. I was replying to > However, as you start pushing beyond "scale" Go is designed for Go is designed for Google scale, I don't know anybody pushing beyond Google scale right now. Anyway, I'm a nice person, you'll find your answer below Enjoy ---------------- most of those projects are legacy software did you expect search to be written in a language invented 10 years in the future? Go is slowly replacing C++ to write the tooling. C++ is simply not scalable enough for day by day use, Linus knew that 15 years ago. Even Firefox is replacing it for its engine, it must mean something. It can be done in C++ doesn't mean it should anymore. Java is there because it runs in ads systems, you don't replace your core product overnight, just like in some banks you still find Cobol. Java is the new Cobol. Fuchsia is written mainly in C and Dart. You wanna write an Haiku style microkernel? C++ is fine, it's just a few thousands line of code. Wanna write millions lines of code in a maintainable way at Google scale? You don't start the project in C++ today, unless you're a crazy person. Even ES5 Javascript is more maintainable than C++.