Get the latest tech news
The Core of Rust
within Rust is a smaller language struggling to get out
Zig similarly has a strong vision: explicit, simple language features, easy to cross compile, drop-in replacement for C. Enums without pattern matching are very painful to work with and pattern matching without enums has very odd semantics Result and Iterator s are impossible to implement without generics (or duck-typing, which I think of as type-erased generics) Send/ Sync, and the preconditions to println, are impossible to encode without traits—and this often comes up in other languages, for example printing a function in clojure shows something like#object[clojure.core$map 0x2e7de98a "clojure.core$map@2e7de98a"]. Java, which is wildly committed to thread-safety by the standards of most languages, cannot verify this at compile time and so has to document synchronization concerns explicitly instead.
Or read this on Hacker News