I develop applications using many languages and a few platforms. From what I am reading, IPv6 is going to be mainstream within then next 5–10 years, and that some ISPs even offe
Security researcher Steve Gibson spoke an amazing amount on this, to note that it isn't coming up in the near future. Here's a few links that give a little more info:
http://www.grc.com/sn/sn-199.htm -- Midway through, he starts talking about IPv6 in the transcript/podcast.
http://www.grc.com/sn/sn-200.htm -- A quick correction for a mistake in the 199 episode, and a little more detail.
Yes: all of your new applications should support IPv6. As you've said yourself, it is already being used in many LAN environments.
No: you shouldn't have to change much in order to support IPv6. The underlying framework should take care of the differences for you. This assumes that you aren't doing "bad" things like storing or otherwise manipulating IP addresses.
I see some here is citating Steve Gibsons opinion on the subject. Although Mr. Gibson is quite skilled in security matters (I do listen to every "Security Now" episode and encourage all interested in security to do the same), I believe he is a little bit out of touch with the current scheme of things when he predicts no future for IPv6.
The use of IPv6 has already expanded beyond mere academic use, and is getting quite a lot of attention in the defence research industry where it is no longer a question of "if" but "when" it will replace IPv4 (in military networks, that is).
Of course, the Internet as we now it will still use v4 for a very very long time, one of the reasons being that most of the hardware and software out there just isn't IPv6 compatible.
I can't think of any downsides to implementing IPv6 now (apart from the extra coding time and the added complexity of maintaining two IP stacks, of course). In fact, with IPv6 things can be much easier. For instance, you can forget all about NAT traversal problems.
The most up to date news that I have heard is that with NPA... IPv6 is really not going forward very fast, if ever. (Steve Gibson - GRC)
It might not be worth your time.
EDIT... obviously this was poor foresight that I should not have bought into. IPv6 is coming and will be needed. IPv4 will probably always exist, but applications should be able to handle both in the near future.
I would at least start trying. I've already made some adjustments to some of my code. It hasn't been fully tested and there's still more adjustments to be made but even if it never gets used in these particular applications I'm going to have to support it at some point. Might as well learn now before it's a sink or swim situation.
Your framework should support both if possible, but if you have a choice of one, I would go with IPv4, but make sure that you can add/transition to IPv6. But this would also depend upon who is the end user of the product and what are the requirements for your project. Is this going to user which are using/will use IPv6 or are you going for acceptence into an existing base which mainly uses IPv4.
Based on my experience, the project I am currently working considered going to IPv6 as there was a mandate to be able to support IPv6. For the most part what we found out is that the hardware vendors (switch, routers, computers) and WAN vendors were able to support switching to IPv6. There would be some work in integrating existing IPv4 hardware, but it could be done. Based on cost, it would be about the same, at least hardware wise.
However, some software products we are using are not and may not move to support IPv6, while others seem to be more adminable to supporting it. Based on that, we are upgrading to new versions of the software, but will probably remain IPv4 for the monent, or at least until the software catches up in terms of support of IPv6.