human cpu Profile picture
May 25, 2021 10 tweets 2 min read Read on X
Why didn't we write the (Zircon) kernel in Rust?
there were a few factors:
I was given the task to learn Rust and write a report on the fitness for Zircon. The internal doc colloquially known as "2016 cpu's Rust trip report" remained very popular for years in that did not made me very popular with with the (then nascent) internal Rust community.
This was Feb 2016 so even a year later the doc was already outdated in many places, and that was a telling symptom: even though Rust 1.0 was released 6 months earlier, it felt very much 'in progress'.
More than that. Languages like C++ grow in spurts, Rust back then was in constant acceleration.
I was using a couple of 'bare metal' Rust projects to prototype and play with it and both became unusable mere weeks later.
The second factor is critical body mass. Not only we needed to get proficient on a fast moving language but we needed to have trained reviewers. When the reviewer knows less about good patterns/practices than the person writing the code, badness ensues.
Rust might have solved some safety issues but I am pretty sure does not solve (code) monkey at the wheel problem.
The third factor is how little of the ergonomics remained without the standard library. A lot would have to be re-written.
The thing with C is to quote Bane, it was born in bare metal, Rust merely adopted it.

yes, yes, things are much better now. calm down.
Then there are the smaller companion horrors, for example, 'the' key data-structure of a kernel is the linked list, for reasons too messy to explain here, you don't really want to change that.
In Rust the linked list is the most convoluted thing and if you listen carefully the language is whispering "don't use that, it makes me sad".
In conclusion. Too early, lack of experts, rapid evolution pains.

It was stacking risk on top of an already risky project.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with human cpu

human cpu Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @cpuGoogle

Jan 14, 2022
Ah yes, that was me. Let me explain (thread).
So MS teams is built on top of Electron which is basically Chrome and it inherits its installer/updater.

(apparently as a race we have lost the knowledge to build client applications that are not forks of Chrome, but I digress)
Circa 2007 I was in charge of designing Chrome's installer. The mandate was 1) 95% success rate and that 2) anybody could try Chrome.

We had all of 480 internal users and no installer. You simply copied chrome.exe somewhere and double-clicked it.
Read 12 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(