babatuba
Plants or otherwise: when you force the balance to tilt one way, you have to be extremely careful not to reach a breaking point.
Just want to add that I think the technology could be really beneficial though. For instance, if you planted less high-yield potatoes in smaller area than previously, you could then afford space for alternate crops and then move potatoes to a different location and counter balance with other crops the next season. This could possibly allow for increased production while still preserving nutrients, increasing overall yield efficiency.
The benefits to that are more advantageous given the sheer amount of code on systems.
Which abstractions can you not create in C++? The only clumsy abstraction I can think about is algebraic data types—and C++ is not a functional language. C++ has an extremely powerful type system for any abstraction you can imagine. But that is also part of the problem :)
Personally, I think C is a better language for lower level development, as it is so simple that upon creating well established practices they are much easier to follow. The idea that codebases become over 10 million lines of code in each of these cases maybe is a sign that there are other architectural issues of scalability. I'd be curious to compare something like OpenBSD and look at _WHY_ those codebases have less vulnerabilities? I think there's a lot more to this than language choice. Change velocity is of course one of them—maybe we need to slow down? It looks like OpenBSD had only 1 vulnerability last year:
https://stack.watch/product/openbsd/openbsd/
I would like to see a simple language like C with Rust memory safety guarantees. These modern languages literally try to shoe-horn EVERY feature from EVERY language so they can appeal to the lowest-common-denominator. But what do you get with that? A systems-level Java?