Memory usage: If a programmer manages memory manually, they will introduce memory corruption bugs, some of which be security vulnerabilities.
-
-
Replying to @is8ac @NPCollapse
Until recently[2], the primary way to achieve automatic memory management was garbage collection. This introduces CPU and memory overhead.
1 reply 0 retweets 0 likes -
Replying to @is8ac @NPCollapse
[2]: Rust provides automatic memory management without a GC by means of a barrow checker. New Rust devs spend the first few weeks fighting the barrow checker, and often just copy memory to avoid it (which increases memory usage again). Swift uses reference counting.
1 reply 0 retweets 0 likes -
Replying to @is8ac @NPCollapse
Backwards compatibility: Linux is big because it maintains compatibility with a older APIs. I assume Windows is similar. Redox OS https://www.redox-os.org/ is 49 MB for a full GUIed OS with a few basic applications. It does not support existing software however.
1 reply 0 retweets 0 likes -
Replying to @is8ac @NPCollapse
ChromeOS is an example of what Linux can be if you do not need to maintain compatibility with other software and hardware.
1 reply 0 retweets 0 likes -
Replying to @is8ac @NPCollapse
Modularly: Qubes OS https://www.qubes-os.org/ is 4.5 GB and takes quite huge amounts of RAM. Why does it need to be so large? Because it runs each group of applications in its own VM with it's own kernel and root FS.
1 reply 0 retweets 0 likes -
Replying to @is8ac @NPCollapse
This is nice for security, (because kernel devs have so far failed at building a mainstream kernel which can safely execute malicious userspace software), but introduces significant overhead.
1 reply 0 retweets 0 likes -
Replying to @is8ac @NPCollapse
Qubes OS is an extreme case. But to a lesser extent, all modern operating systems compartmentalize their userspace software, requiring it to live in its own well protected sandbox and communicate through tightly defined channels.
1 reply 0 retweets 0 likes -
Replying to @is8ac @NPCollapse
This introduces overhead and increase latency. Latency cannot be masked by better hardware because CPU speeds are not increasing very much any more.
1 reply 0 retweets 0 likes -
Replying to @is8ac @NPCollapse
Build times: Modern compilers do more work. Some people do care about build times. Go and Swift build fast. Rust release builds relatively slowly, but `cargo check` is fast. They care about build times: https://perf.rust-lang.org/ https://blog.mozilla.org/nnethercote/2019/07/25/the-rust-compiler-is-still-getting-faster/ …
1 reply 0 retweets 0 likes
In conclusion: Current software has increased binary size and memory usage in exchange for security and performance and developer convenience. (Even taking all this into account, it is still inexcusably large, broken and insecure.)
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.