Re: Backwards compatibility
"And that notional committee made one more critical choice: IPv6 was not backward-compatible with IPv4, meaning users had to choose one or the other – or decide to run both in parallel.
For many, the decision of which protocol to use was easy because IPv6 didn't add features that represented major improvements."
That's not the reason at all. The reason IPv6 is not used is because IPv6 was designed to *replace* the Internet, instead of *extend* it. And the Internet had already become too important to replace.
Network builders don't have a choice between IPv6 and IPv4. They have a choice between (IPv6+IPv4) or (IPv4 only), since IPv4 is where the majority of Internet content is. Even if it were the minority, you'd still want to reach it. A customer who can't connect to their bank will report this as "My Internet connection is not working".
In which case, the choice is obvious: (IPv4 only) is simpler, more reliable, easier to debug and maintain, and therefore cheaper, than (IPv6+IPv4).
It *is* kind-of possible to build an IPv6-only network today and have it talk to the Internet, but you need a NAT64 gateway, and you need clients which are able to use it: macOS/iOS/Android can, but Windows still can't (*), and Linux can't without a load of hacks. Also, you still need an IPv4 address on the outside of your NAT64, which means you still need IPv4 somewhere in your network. In that case, you might as well run NAT44 instead.
IPv6 also changed things that didn't need changing, like replacing ARP with NDP, and trying to replace DHCP with SLAAC (but ultimately being forced to run both side by side); these are minor annoyances that turn people off IPv6. But fundamentally it's a business issue: do you want to run one network or two? If you want to connect to the Internet, you need IPv4, but you don't need IPv6.
Finally, don't claim that you need IPv6 to access IPv6-only websites, because they won't exist, apart from <tt>loopsofzen</tt> and a few cat feeders. Eyeballs equal money, and any site that wants eyeballs must be accessible from IPv4 clients. Fortunately, this is easy and cheap, because CDNs can host an unlimited number of sites on the same pool of IPv4 addresses. And even if you had to pay for a real IPv4 address for your website, this would still be far cheaper than the millions companies are paying for a cool-sounding domain name.
Aside: I am a techie. I do run dual-stack at home. I like having direct access to my VMs from outside, if I happen to be on an IPv6-capable network. But I can understand why the vast majority of enterprises in particular are not bothering with IPv6; dual-stack is significant cost for zero return, and single-stack IPv6 does not work for many important use cases.
(*) Unless you spoof DNS with DNS64, and that doesn't work in all cases.