Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
rust-analyzer
Discontinued A Rust compiler front-end for IDEs [Moved to: https://github.com/rust-lang/rust-analyzer] (by rust-analyzer)
I think you're not wrong.
HN Rust articles: 4 in the last 24 hours (not including this one)
https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
HN Go articles: 1 in the last 24 hours https://hn.algolia.com/?dateRange=all&page=1&prefix=true&que...
JavaScript: 5 in the last 24 hours - a much more popular language but none of these got to the front page
https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
People do consistently audit unsafe usage. And I would rather have atrocious rust code that's memory safe, than atrocious C/C++ code that comes with a free package of CVEs.
There are tools that explicitly exist for this use case, such as cargo-geiger [0]. There was some drama with a large framework called Actix a while ago due to the maintainer having a bit of a cavalier attitude towards unsafe usage. Etc.
0: https://github.com/rust-secure-code/cargo-geiger
The current issue is really to prevent rebuilding of entire compilation units. Incremental compilation helps somewhat but I haven't found it to be good enough when the size increases. My gut feeling is that it comes from linear or n^2 searches across the entire module due to e.g. parts of the trait system. There's no issue depending on huge crates, when they have been compiled.
To solve this you can move to a workspace structure with internal crates, this makes local changes and tests very fast to compile. For the larger structure you only recompile what is needed starting at where the change originates in true DAG form. On the other hand you have to not create any dependency cycles when breaking things apart.
For a workspace setup look at for example Rust-Analyzer:
https://github.com/rust-analyzer/rust-analyzer/blob/master/C...
In theory yes, but in practice managed languages need native GC support because garbage collectors in WASM code are quite slow. There's a proposal in the works: https://github.com/WebAssembly/gc/blob/main/proposals/gc/Ove...