First of all, I don't really think people have any greater motivation "to upgrade Windows/Mac versions": Here are the usage share of web client operating systems (August 2010): Windows XP (48.32%), Windows 7 (19.81%), Windows Vista (18.43%), Mac OS X (6.42%), iOS (iPhone) (1.40%), Linux (1.34%). So nearly 50% are using an outdated OS (XP).
By contrast, here are the usage share statistics for browsers: Overall- IE (31.1 %), FF (45.1%), Chrome (17.3%), Safari (3.7%), Opera (2.2%). Breaking down IE by version- IE9 (0.2%), IE8 (17.3%), IE 7 (8.0 %), IE6 (5.6%). And for Firefox- FF4 (0.8%), FF3.6 (35.3%), FF3.5 (5.6%), FF3.0 (2.9%). So over 50% use the latest stable (or beta) versions of these browsers.
As for your other question--"How can you tell your end users that they will need to upgrade their browser to use the latest version of your website without a huge outcry?"--you must understand (i) the factors motivating people to upgrade, and (ii) the factors inhibiting people from upgrading; then you must use these factors to bolster your appeal to your end-users.
Motivators
What rewards do end-users get by upgrading? Skimming Microsoft's IE8 marketing materials, these are the motivators they stressed most:
- Appeals to Efficiency/Laziness:
- Faster surfing (i.e., you will gain more free-time if you switch)
- You can accomplish more work with fewer clicks, because of a more intuitive design. IE7 had put certain buttons in strange places, etc. (I.e., you will lose less effort [as measured in clicks] if you upgrade).
- Appeals to Security/Fear:
- SmartScreen protects you from malicious software (i.e., you will lose safety if you don't upgrade).
- Compatibility View allows you to view older pages correctly just as the website’s designers intended (i.e., you won't lose anything if you upgrade).
So motivators boil down to what the end-user will gain by upgrading (or lose if they don't upgrade). These things must be important to the end-user: Time, effort, financial security, compatibility, etc.
Reinforcers
Reinforcers aren't rewards, but they help increase the rate of adopting the desired behavior. Here's an example: Your web site can detect old versions of browsers, and direct users to download and install the latest versions by providing links and motivators.
Inhibitors
- Nuisance (cost in terms of time and effort) to upgrade
- Nuisance of learning something new
- New versions are inevitably buggy and suffer from incompatibilities that haven't yet been discovered
You must anticipate these arguments, and develop effective counter-arguments:
- There is a risk/reward trade-off, and the rewards outweigh these risks.
- New versions of browsers are fully supported, and bugs will be worked out. By contrast, older versions aren't well supported; and the oldest version have lost support entirely.
I'm doing iOS, C# .NET desktop and Java Struts2 webapp development and I enjoy all of these. I think it's always a good idea to see how the different platforms approach their same goals and it gives you a greater overall understanding of the languages and frameworks involved. This means I'm not going forward with the same speed that my colleagues go that only do one of these platforms, but overall you're never limited because you can switch to something else anytime.
I also believe that you should start your projects on the most suitable platform and should then migrate it to other platforms as you see their success or begin something else if you don't see them working out.
Best Answer
There are several advantages of creating a native app:
As you've noted, developers native apps do have the disadvantage of building and maintaining apps for multiple platforms. This factor might not be a significant disadvantage if the developer is focused on only one platform.
Some discussions in blogs that you might be interested in reading: