![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png) --- > A fast way to start an argument in a room full of programmers: “How do you implement a doubly linked list in Rust?” > At one level, this question is not very fair, because an answer to it as stated would be that one simply does not use doubly linked lists. They have been popular in introductory computer science lectures because they are a neat way to explain pointers in a data structure that's easy to draw on a whiteboard, but they are not a good match to modern hardware. The last time I used one was in the nineties. I know the Linux kernel uses them, but that design was also laid down in the nineties; if you were designing a kernel from scratch today, you would probably not do it that way. - [View Highlight](https://read.readwise.io/read/01k24rdvkm6f33d78j0s3dkyxv) --- > Circular references don't necessarily break ownership, but they do break the ability of the type system to keep track of it. - [View Highlight](https://read.readwise.io/read/01k24rezbebdt5m9x6xd31s888) ---