2 ms·
I'll quibble back several things: Clojure has immutability on top of atoms/refs/agents, so while Rust is doing Nerf mutation with the borrow-checker, Clojure a
by jstewartmobile 9y ago
I'll quibble back several things:
Clojure has immutability on top of atoms/refs/agents, so while Rust is doing Nerf mutation with the borrow-checker, Clojure avoids it in the first place.
That, and generally I think threads are overused. Mostly because spawning a new process has been needlessly slow in the past (especially on Windows). Even in C-land, I've seen so many cases where forking and IPC would be more than fast enough, yet far safer.
And getting back to the hardware aspect, having a single thread and a badass SIMD instruction is usually faster and easier to reason about than multiple threads and general-purpose instructions where your performance gets fetch-execute-cache-hierarchy-memory-bandwidthed to death.
Worst of all, I think this entire mode of computing survives primarily due to marketing reasons. Explaining how something works smarter rather than harder is a difficult sell. Printing "MORE CORES!" "MORE GIGAHERTZ!" on a brochure is an easy and effective way to make the sale.
- oconnor663 9y agoAll fair :)
- burntsushi 9y ago> And getting back to the hardware aspect, having a single thread and a badass SIMD instruction is usually faster and easier to reason about than multiple threads and general-purpose instructions where your performance gets fetch-execute-cache-hierarchy-memory-bandwidthed to death. ripgrep benefits from both having multiple threads and badass SIMD instructions.