3 ms·
Fundamentally is there anything you can't write in rust and must write in C? With AI languages should mostly be transposable even though right now they are not.
by jtchang 10mo ago
Fundamentally is there anything you can't write in rust and must write in C? With AI languages should mostly be transposable even though right now they are not.
- t-writescode 10mo agoWhy rewrite something with multiple decades of validation and bugs-now-depended-upon-features? Word and Excel almost certainly have 30 year old C++ code that #must-not-be-touched, bugs and all.
- HackerThemAll 10mo agoSecurity. I know it's boring for most, but important for those who need to handle cybersecurity issues.
- canucker2016 10mo agoSo they're going to port Microsoft Edge web browser to Rust? Are they going to upstream their changes to the Google Chrome-codebase?
- leftbehinds 9mo agoMozilla seems to be doing well after inveting rust and rewriting firefox using rust
- canucker2016 9mo agoAccording to https://4e6.github.io/firefox-lang-stats/ https://4e6.github.io/firefox-lang-stats/ , only 12.3% of Firefox is written in Rust.
- jiggawatts 10mo agoSome of the “algorithms” libraries in C++ are very difficult to express in safe Rust and might require proc macros. Most anything related to “intrusive linked lists” is difficult or outright impossible in safe Rust, but is commonly used in operating system code.
- LeFantome 10mo agoTo be fair, one of the main reasons linked lists are used is that more advanced data structures are too hard at the OS level with C.
- jiggawatts 9mo agoIntrusive linked lists have performance and robustness benefits for kernel programming, chiefly that they don't require any dynamic memory allocation and can play nice with scenarios where not all memory might be "paged in", and the paging system itself needs data structures to track memory statues. Linked lists for this type of use also have consistently low latency, which can matter a lot in some scenarios such as network packet processing. I.e.: loading a struct into L1 cache also loads its member pointers to the next struct, saving an additional step looking it up in some external data structure.