- complete control over hardware.
- automatic centralised updates (no bulky bug-ridden pr-driven version updates set to unproductive deadlines).
- bug-fixes immediately commited to code.
- close contact with user-base (organic growth of features).
- cross-browser issues minimal compared to cross-platform issues.
- leveraging central data store (social/collaborative software by default).
- Availability of usage statistics (access patterns etc) to inform development (easily spot which areas of your app need optimisation, which features are popular/underused and which interfaces need improvement).
- rapid development frameworks in high-level scripting languages means agility (Ruby on Rails / PHP5 / Python / Perl) so you can just try stuff out. If it isn't working out you'll spot it immediately from usage stats/feedback.
- proven scalable ('shared nothing') architectures.
- your users need have no technical knowledge whatsoever, other than how to operate a browser. Your user's desktop environment can't influence your software in any way, so technical support is restricted to browser issues.
That said, if you're building a graphic intensive arcade game then KHTML may not be your rendering engine of choice ;)