- Perl 5 to Perl 6. I think this was an unmitigated disaster. 20 years ago Perl 5 had a lot of users. I'm pretty sure it's completely irrelevant now;
- Python 2 to Python 3. It's been almost 12 years and we still have Python 2. Personally I think a lot of bad decisions were made here, like getting rid of s' and u' string prefixes (before adding it back in Python 3.3). Unfortunately I think Python 3 is now in a state where each minor release makes language changes.
Which brings us to IPv6. It's been 25 years and we're still asking "are we there yet?" The biggest lesson for me is that IPv6 is a classic example of the Second System Syndrome.
Faced with the limited prospect of making future breaking changes, everything got thrown into IPv6 without solving the two problems that actually matters (ie roaming, reliable UDP). The only real problem with IPv4 is address space exhaustion. And we've had decades of NAT to kick that can down the street with probably decades to come.
I honestly don't know how this will ever happen.