The evolution of Rust compiler error messages, the approach taken by the core team, and even some sample code from the Rust lexer and parser!
miniblog.
Related Posts
What software designs require clean slate 'revolution' implementations, rather than evolution?
I can think of: borrow checking in a PL (existing code is unsafe), microkernels (architecture is too different from monokernels), and full REPLs (can't add type redefinition later).
From simple IP blocks to probabilistic deep packet inspection: the evolution of web censorship technology: https://news.ycombinator.com/item?id=22659534
The evolution of communication styles when machine learning can do the simple stuff: https://www.overcomingbias.com/2017/03/better-babblers.html