News for hackers. Stuff that matters.
Re:Null References: The Billion Dollar Mistake by amelius on Saturday January 11, 2020 @10:55PM (#22024352)
> Doubly-linked lists are an awkward example because the "safety" of a doubly-linked list as a data structure involves fairly complex invariants that Rust can't even keep track of at this point.

Perhaps it's just me, but I'd like to assume that my language does not treat any algorithm found in a basic algorithms course (e.g. Sedgewick) as awkward.

Re:Null References: The Billion Dollar Mistake by jayd16 on Saturday January 11, 2020 @11:18PM (#22024447)
Eh, I have no problem with the idea that data structures that work in C are awkward in different paradigms. Many data structures are awkward in functional programming. Lots of things are awkward in C that are easier in other languages.
Re:Null References: The Billion Dollar Mistake by elcritch on Sunday January 12, 2020 @08:15AM (#22026152)
How times have you used doubly liked lists outside a CS101 programming exercise? Even if you did, it’d usually be trivial to implement an array index version or just use unsafe. Basically it seems you give up almost nothing for memory safety.
Re:Null References: The Billion Dollar Mistake by dpbriggs on Saturday January 11, 2020 @11:22PM (#22024462)
For sure, you can avoid awkwardness by not statically verifying memory usage & invariants (c++, etc) or using a GC'd language. Rust's ownership and borrowing rules are limited, but simple enough for someone to internalize them quickly.

There's a pretty vast difference between human simple and computer simple. Rust requires that you prove memory safety, or use unsafe. That's a different problem than just informally ensuring invariants are met.

You could probably pull in more advanced type theory research for more nuanced ownership, but I'd bet the language would be harder to understand overall (Haskell disease).