News for hackers. Stuff that matters.
Re:Case Study: Npm uses Rust for its CPU-bound bottlenecks [... by CamouflagedKiwi on Sunday March 03, 2019 @12:09PM (#19295476)
> Imagine the K8S team porting from Go to some other language for similar reasons.

k8s was originally written in Java, so they have already done this once.

Re:Case Study: Npm uses Rust for its CPU-bound bottlenecks [... by tyingq on Sunday March 03, 2019 @12:23PM (#19295555)
I didn't know that, but it makes it a more interesting comparison. I imagine at least part of rewriting it in Go was to "eat your own dogfood".
Re:Case Study: Npm uses Rust for its CPU-bound bottlenecks [... by pjmlp on Sunday March 03, 2019 @12:42PM (#19295660)
Actually it was more like "new team got in charge" actually.

There is a FOSDEM 2019 talk about it.

Re:Case Study: Npm uses Rust for its CPU-bound bottlenecks [... by tyingq on Sunday March 03, 2019 @12:53PM (#19295711)
Thanks! The talk:

"The clusterfuck hidden in the Kubernetes code base" https://fosdem.org/2019/schedule/event/kubernetesclusterfuck...

Re:Case Study: Npm uses Rust for its CPU-bound bottlenecks [... by patrec on Sunday March 03, 2019 @01:55PM (#19296086)
One wonders if there'll be a similar talk in a year...

> The audience walks away feeling empathetic that they aren’t alone in their journey to writing idiomatic Go and is now equipped with strong refactoring techniques developed by some of the world’s top engineers for the Kuberentes project.

As an occasional user of kubernetes, minikube etc. it's not something I would have guessed to have been developed by the word's top engineers.

I mean kubernetes tries to, and probably manages to provide an useful abstraction, but at a few million LOC and a few man-month of full time senior engineering effort to run anything in production it's not exactly a epitome of elegant and efficient engineering.

Re:Case Study: Npm uses Rust for its CPU-bound bottlenecks [... by pjmlp on Sunday March 03, 2019 @02:35PM (#19296320)
You would be surprised at the quality of Android tooling stable releases, to the point that now there is Project Marble in place to try to improve its image.

https://adtmag.com/articles/2019/01/17/project-marble.aspx

If you want to have some reading fun, check /r/androiddev/ every time there is a "stable" release.

Re:Case Study: Npm uses Rust for its CPU-bound bottlenecks [... by patrec on Sunday March 03, 2019 @03:21PM (#19296591)
Even people working for Google on Android tell me the tooling is pretty garbage, so I'm less surprised than you might think ;)

The interesting thing with Kubernetes is that it's basically a re-imagining of Borg, which one assumes was not a few million lines of code when it was already running all of Googles infra more than a decade ago. It's obviously not solving the exactly same problem (e.g. Google correctly recognized that DNS isn't so hot and wrote their own replacement protocol, BNS which wouldn't fly for external adoption etc.). But I'd be curious to know how Borg's code quality and size back when it became the standard way to run stuff at Google maybe 12 years ago compares to Kubernetes today.

Re:Case Study: Npm uses Rust for its CPU-bound bottlenecks [... by tyingq on Sunday March 03, 2019 @02:38PM (#19296332)
I bet k8s would look different if it were written by developers used to a more limited set of cpu, io, and memory resources.
Re:Case Study: Npm uses Rust for its CPU-bound bottlenecks [... by pjmlp on Sunday March 03, 2019 @02:49PM (#19296397)
Well, given the hops one has to go through for the privilege to work at Google, another level of code quality is to be expected.
Re:Case Study: Npm uses Rust for its CPU-bound bottlenecks [... by tannhaeuser on Sunday March 03, 2019 @01:46PM (#19296030)
Wow. Didn't realize it was that bad:

> We look at what it would take to begin undoing the spaghetti code that is the various Kubernetes binaries

Well at least the developers are being frank about it I guess.

Re:Case Study: Npm uses Rust for its CPU-bound bottlenecks [... by CamouflagedKiwi on Sunday March 03, 2019 @02:43PM (#19296366)
My guess would be more on the side of native binaries (i.e. no runtime JVM dep) and lower memory use, but could be that too.