IPv6 gets adopted when the ever-dropping cost line meets the ever-rising cost line of IPv4, and not sooner. (And IPv4's cost line has only really twitched upwards; unfortunately due to the nature of this sort of rigid supply/growing demand situation with market forces being suppressed by the supplier ignoring them you tend to only see the price spike at the end of the supply. If we were being really rational about this we'd be raising the price on IPv4 blocks already.) Once that happens it becomes difficult to predict exactly what happens next, because as people marginally transition to IPv6, that causes the cost of IPv6 to further drop as people iron the problems out (making it easier), but the costs of IPv4 drop too as IPs become more available again. I suspect IPv6 will win if for no other reason than momentum, though; the perceived costs of not transitioning will become higher as it becomes the "in" thing to do.
The hands have been wringing over the past decade as people have overestimated the costs of IPv4 and underestimated the costs of IPv6, by quite a lot. But I suspect this will not be the exception that breaks the simple principles of economics.
Incidentally, some blame can be laid at the feet of those who designed IPv6 and took the opportunity to jam every wishlist item into it they could think of (to a first approximation), thus raising the price of IPv6 through the roof and causing the lines to fail to cross until quite late. Had IPv6 been an incremental improvement over IPv4, with a larger address space, the costs would have been much less (though still large and easy to underestimate) and the cross-over would have come much sooner. Perhaps it would not have come yet, but it would have been sooner and more graceful (since, after all, a global price curve is only an approximation, what matters are all the local ones).
A lesson for next time we need to redesign one of the Internet's core protocols: KISS doesn't stop mattering just because the problem is big! (Quite the opposite, really.)
Had IPv6 been an incremental improvement over IPv4, with a larger address space, the costs would have been much less
This is not clear to me. It seems like the base cost of adopting any new protocol is pretty high, so simplifying IPv6 wouldn't have reduced the transition cost much. Given the high base cost, it actually makes sense to pack in as many fixes as possible IMO, especially since this is our one chance for the next ~25 years or so. (Some people are complaining that IPv6 didn't solve enough problems, like routing scalability.)
Actually, most of these "wishlist items" are not relevant for the core IPv6 protocol (as in subset that needs to be understood by routers) and deal mainly with end hosts. But what is relevant to cost of migration is exactly the larger address space, most high-performance routers do almost everything in custom hardware.
Most important part of this cost-wise are FIB lookups, with FIB being typically implemented as specialized content addressable memory chip, which due to it's nature is pretty expensive (it is one of things that you cannot reasonably implement in programmable logic) to redesign for larger address space (and impossible to upgrade without throwing out whole router). On the other hand, header decoding are usually implemented in some programmable logic or directly in software so, that can be field-upgraded with relative ease. So in the "Carrier grade" and "L3 switch" categories you get things that are new and capable of IPv6, things that simply cannot be upgraded and devices that can be upgraded to do IPv6 routing in software (at great performance overhead)
Routers aren't the only cost source. I've seen some coworkers work on moving IPv4 end-user appliance products to IPv6, and just the act of managing IPv6 addresses on such appliances, to say nothing of interacting with the other IPv6 issues that may not be part of the "core protocol" but you better support if you're going to claim IPv6 compliance, was a surprising amount of work.
I thought I knew what IPv6 was, but man was I ever wrong. It's significantly more complicated than IPv4. Which I don't necessarily even mean as a criticism, some of the bits of complication are actually fixing problems with IPv4, while I'd say other things are just wishlist items. But regardless of how right or wrong it is, it is definitely more complicated.
As expensive as routers can be at the high end, broadly speaking, router costs in dealing with the core protocol do not seem to me to be what is holding back adoption. The costs are dominated by all of the other things that need to speak IPv6 before you can transition at all, let alone entirely eliminate IPv4. Maybe I'm wrong, though, it's hard to tell.
I focused on costs to organizations deploying IPv6, not costs to manufacturers/developers (which may or may not be reflected in increased equipment prices).
And as for all the other things that need to speak IPv6, I was actually surprised that for more than year any random new piece of network attached anything that I have seen supported IPv6 out of the box and just worked.
The hands have been wringing over the past decade as people have overestimated the costs of IPv4 and underestimated the costs of IPv6, by quite a lot. But I suspect this will not be the exception that breaks the simple principles of economics.
Incidentally, some blame can be laid at the feet of those who designed IPv6 and took the opportunity to jam every wishlist item into it they could think of (to a first approximation), thus raising the price of IPv6 through the roof and causing the lines to fail to cross until quite late. Had IPv6 been an incremental improvement over IPv4, with a larger address space, the costs would have been much less (though still large and easy to underestimate) and the cross-over would have come much sooner. Perhaps it would not have come yet, but it would have been sooner and more graceful (since, after all, a global price curve is only an approximation, what matters are all the local ones).
A lesson for next time we need to redesign one of the Internet's core protocols: KISS doesn't stop mattering just because the problem is big! (Quite the opposite, really.)