←back to thread

177 points signa11 | 1 comments | | HN request time: 0.283s | source
Show context
dinobones ◴[] No.42161053[source]
I've written a ton of software, both backend and embedded-like software in C++.

What are people writing that requires such fancy/extensive usage of the borrow checker?

I can't even remember the last time I had to use a shared_ptr... unique_ptr and other general RAII practices have been more than enough for our codebase.

replies(2): >>42161108 #>>42164582 #
1. Const-me ◴[] No.42164582[source]
> I've written a ton of software, both backend and embedded-like software in C++

Me too.

> What are people writing that requires such fancy/extensive usage of the borrow checker?

The simplest example I can imagine is this: https://en.wikipedia.org/wiki/Matrix_multiplication When your matrices are large and you want it to run fast, you want to parallelize.

Good algorithms (which don’t bottleneck on memory bandwidth) need multiple CPU cores to concurrently store different elements of the same output matrix. Moreover, the elements computed by different cores are not continuous slices, they are rectangular blocks. Such algorithm is not representable in safe rust.