Large software projects cycle back and forth between fragmentation and defragmentation. There is no right answer, only what's right for each project at the time.
That’s just a gross simplification of the things modern devices need to do today.
Simple stuff like encrypted handshakes used to be a significant performance consideration, and they are now a necessity for doing basic tasks like banking.
Modern software isn’t just bloated for no good reason and it’s such a tired trope among nerdy circles.
Sure, a phone from 2012 is powerful enough to do that specific task, but I am just using encryption as a pretty good example of how at some point you just need newer hardware in order to exist in the modern device ecosystem. No efficiency of software will make a commodore64 a usable device to use SSL in 2025.
And nobody is forcing you to exist in that system anyway. You can just physically go to the bank like my parents do. You can write checks like my parents do. This whole article is about needing technology to make a last minute payment that was highly predictable and should have been planned ahead of time.
It's not that extreme -- I had to get a new phone recently and it has 12 GB.
There is such a thing as reasonable upgrades and necessary replacements. But long-term FAANG software projects are built like sedimentary rock -- layers upon layers. This bloat has a real cost in performance but hardware upgrades help defer the problem and users pay for it.
You call it deferment of the problem but I call it elimination of the problem.
Yeah, a $500 phone comes with 12GB of RAM (Pixel 9).
A $150 GB phone comes with 6GB of RAM. Still quite a healthy amount and less than my last grocery bill. That’s cheaper than two iPhone battery replacements for an entire new phone.
This is before the devices have depreciated on the used/refurbished market. I can buy last year’s Pixel 8 for $230 and it has 12GB of RAM.
It’s totally fine to not want software bloat but at some point it is better economics to improve the hardware.
As someone married to a Korean, I am not surprised in the least. Every single one I have met (males at least) drinks like a fish. It is impossible to describe to a westerner just how ingrained the drinking culture is over there.
I think it's easy to unknowingly surround yourself with yes-men and become insulated from failure. Losing then seems like an exception to the rule, a bug.
This is kinda why I hate advanced type systems, they slowly become their own language.
"No compile/no codegen" sounds nice until you get slow compile times because a type system is slow VM, the error messages are so confusing it's hard to tell what's going on, and there's no debugging tools.
Different product launches have different people running them that want to do things their way, and not enough leadership to keep the overarching vision consistent.
I empathise. It's important in any large software project try to converge on one right way to do something, because inconsistency is bad for maintainability.
That being said, change is inevitable, so this desire for maintainability can't prevent all change.
It's a shame they couldn't find a way to balance these things.
The kernel did find a way to balance these things. Nothing is being rewritten in rust (nothing core, some modest drivers have been). Hellwig didn't have to worry about Rust at all, could have kept doing his thing.
If we accept this as the core concern:
> Having worked on codebase like that they are my worst nightmare, because there is a constant churn of rewriting parts from language A to language B
Then he has no need to fear, nothing in the foreseeable would have affected him in any way.
He didn't like that he didn't have control over what other people elsewhere were doing. But there was an extremely generous balance offered him, to be utterly unaffected in any way. And that wasn't good enough for him.
You're not wrong, but if one of the main Rust proponents and one of the main anti-Rust proponents both quit, that doesn't strike me as them finding balance.
Co-incidentally, I was just listening to the radio, where a former BP strategy employee was pinning the failure of BP's "Beyond Petroleum" strategy squarely on the difficulty of a company that is built to do activity X pivoting to also do (competing) activity Y. The recommended solution there was to spin off a new entity focused entirely on Y. It's hard not to draw a parallel.
Change is not inevitable in this lol. We all speak English here despite the fact that the language has many nits to pick. There's no inherent reason why C needs to be abandoned because some new thing came along and solves a few of the associated nits. C++ was never used for the Linux kernel despite the fact it solves many of C's problems and is far easier to integrate than Rust. Integration of Rust is a pet project that Linus and others have taken an interest in, not some absolutely groundbreaking or necessary change.
The difference between C++ and Rust is more akin to the difference between a standard pencil and a mechanical pencil lol. Also:
>In a similar vein, there's no inherent reason to use a calculator over doing calculations on paper.
Improved speed and reduced mental overhead are the main reasons people use calculators, not accuracy. This is because you can use any tool such as a calculator (or programming language) incorrectly.
I used to hear that the difficulty of relating CPU instructions to lines of C++ was the reason it wasn't suitable for the kernel. Now, all that has gone out the window (as Rust is definitely no simpler than C++), and they're making changes to the Rust language to suit the kernel application (as opposed to using something tried and true). It's a bad idea, but I expect it to be carried out to the point of absurdity.
I think you are categorizing people's peferred methods of persuasion. There are traditionally three ways to persuade someone -- logic, emotion and authority.
Ultimately people weigh each method differently. I think you are pidgeonholing them into two categories.
I think that's unwise, since it hurts the potential for you to grow your "EQ", so to speak.
Relevant xkcd: https://xkcd.com/2044/
reply