The natural solution will be that IPv4 addresses will start getting more and more expensive as they become scarce. At some point, switching to IPv6 will be the cheaper option, and then the switch will happen.
Or companies and universities will give up there unused IPv4 addresses so there will be a lot available again. They may even sell them at large prices.
But then again, it's just a matter of time before we are really out of IPv4.
http://en.wikipedia.org/wiki/IPv4_address_exhaustion#Reclama...
But if you only buy an ipv6 address, the people who are only on ipv4 can't get to you. By itself, the ipv6 address is nearly worthless. The only people who have them now are people who also have an ipv4 address. ipv4 isn't going away any time soon...
Well, when ISP hits a cap they either have to get more IPv4 addresses (which they won't be able to do soon) or use some NAT. Except for legacy systems support, NAT64 is clearly a winner here.
NAT64 works fine if you have an ipv6 client and want to talk to ipv6. That's just regular old network address translation. But if your server is on ipv6, NAT64 still needs an ipv4 address so that people there can get to you. The ipv6 address is pointless-- it's easier just to put your server on ipv4 and not mess with NAT64 or ipv6.
Currently IPv4 addresses fix nicely (exactly) into a 32-bit integer. How do you propose that software storing addresses as such will be able to use a larger address without an update? (Not to mention all of the other reasons, like the different packet format to accommodate the larger address space among other things)