Mark said:
I have to be honest and admit that I can see no reason whatsoever for it
now. If you need web-rendering, but not a browser, and you are writing
it for an application then why the hell not actually WRITE an application?
Surely it is a lot easier just to drop an HTML control into a simple
application rather than all this buggering around with a (relatively)
standard browser?
There are lots of reasons that applications are being implemented as web
applications and, believe it or not, they're legitimate reasons. I know,
I know, *you've* never seen the reasons, but I'm pretty sure you haven't
faced every software problem in existence (though I've been wrong before).
Yours is a typical reaction in web development discussions when someone
asks how to do something restrictive or authoritarian: an assumption
that we're talking about a web "site" that is publicly available and
fits your idea of a "site". The thing is, there's an AWFUL lot of web
work that is done outside of that scope. Over the last 5 years, well
over 85% of the web development I've done and participated in
development is behind the firewall. We're talking about projects costing
over $3 million and used by 10's of thousands of users, all of whom work
for the same company. Is that a lot of money for a web application?
Absolutely. In several of those cases, did the previous non-web
application (the one you insist must be easier to build) cost $5-6
million in total costs for similar effort? Yes, again.
When you're talking about deploying a critical piece of software that
was already needing the client/server model, the web is often much
cheaper than the alternative. You can standardize the clients/browsers
and deploy bugfixes, enhancements and upgrades to all machines by simply
upgrading the web app on the web server. You don't need to fight with
pushing out software upgrades across the world or FedEx'ing CD-ROM's all
over the place. You also don't need to worry about users cancelling the
upgrade (to bypass the interruption) and continuing to use an old
client. You can also control the machine where the application itself is
installed, since it's entirely on the server. There's no trying to
figure out why a certain desktop won't let the app install only to find
out some stupid screensaver they added has messed up their registry. The
cycle for making changes in response to the users' feedback is also
drastically improved. Couple that with roaming users who use the same
application across multiple machines and maintaining consistency and
you've got just a few of the major reasons why something that would be
an irritating faux pas on the web at large (popups used for advertising)
turn into a much appreciated feature (new windows used as modal dialogs
for an application) in a different setting.
Here in reality, deployment, support, etc. often cost more than the
developer time to build the application in the first place.
In my current application, we use new windows as a destination for Excel
exports. Users specifically requested the functionality to enable them
to have several exported reports open simultaneously to do comparisons
before deciding exactly which report to finally export and save. For the
most part, this didn't cause problems because 90% of the users of this
application are using locked down machines in common areas. However, the
remaining 10% are using their work desktop machine and several have
installed additional popup blockers, resulting in complaints.
In this case, this is a very small drop in the bucket (as are most of
these types of issues) that would just be nice to solve with a quick bit
of JS (a 20 minute solution, costing the project very little).