The Web's Getting Rusty
Photo by Zdeněk Macháček on Unsplash
And so it begins: The Chromium team has announced that Chrome will begin to get a little Rust-y!
https://security.googleblog.com/2023/01/supporting-use-of-rust-in-chromium.html
They now support a Rust tool-chain for third-party libraries by enabling inter-operation between it and Chromium's code-base, written in C++.
Why I think it matters: Chrome is by far the most popular browser with a 75%+ market share. Rust is a modern systems-level language that provides better security, performance, and results in better management of large+complex code-bases. The long-term move (and it would take a long time) towards Rust should make browsing experience safer and better for everyone.
Wait, is that it? No. Last year Linux kernel 6.1 also enabled support for Rust, another significant signal that perhaps there is a new technology in town that might rule the long-term future of everything digital? This technology could be safer, more performant, more energy efficient, and make technology more accessible at scale.
But, how do we get there?
In 2023, the world still runs on COBOL, a ~65 year old language. Some 250+ billion lines of code run our banks, hospitals, infrastructure, and the government. Decades later, we haven’t found a good way to replace COBOL with any of the dozen or so modern languages used today. The cost of that work is extremely high, and the effort is too dangerous. Imagine how much disruption an FAA system caused with just a few hours of downtime just a week ago.
Now, compare the COBOL bits with the code that runs the rest of our technology: every computer, phone, microwave, electronic toy, car engine, AI, robot, and the very browser with which I am typing this post. With some exceptions, all of it is/was built using C or C++, two very similar yet separate languages with some strong common roots and interoperability.
These languages have, too, been modernized over the years. The newest version of C++ for example, C++23, is actually a great language and if you ignore many of the older features it still supports for backwards compatibility, it is quite comparable to other popular technologies. But the older features are precisely what are being used to manage existing code-bases, like Chromium (Chrome’s foundational code-base) so those features are here to stay. Given the enormous scope, C/C++ also have very large and active communities who are innovating day by day to deliver the things that others build upon -- the foundations of all technology: operating systems, networking equipment, system programs, device controls, game engines, microcontroller programs, etc.
How do we absorb this cost as a society? Who’s got the money and the time to rewrite the world? Are the tradeoffs worth it? Are the benefits better than marginal gains? Does the strategy of enabling a little Rust in more projects really lead to a long-term transformation at scale without something much more fundamental? Does extreme automation via AI and ML in the near future perhaps enable this?
What do you think?