With very little resources you bring applications to a lot of people.
I'm not very sure of this statement, at least not in absolute.
You can have at least these solutions
Solution 1: RIA online software. Client: Flash or Js/Ajax or Java or anything else.
Solution 2: as the above on LAN
Solution 3: desktop application with DB on their LAN
Solution 4: desktop application with web service
Just imagine a software to manage a store with the above solutions
- Developing cost: almost equal (for ordinary things) or more (e.g., as I already mentioned: try to change printer by software).
- Server cost: Web server, bandwidth/Traffic
- Manteinance: it depends on many factor. I have sold 1 thousands copies of desktop applications software for legal purposes by
http://www.ilsole24ore.com/ and no one has called me for problem because I develop like NASA do. I have sold real estate software to a huge amount of agencies and I have THE INVERSE problem: they never had problems so is difficult to ask them money to justify assistance, because my software never have 1 problem. This is a problem but also a great value!
So it depends on some factors, and the 95% is THE PROGRAMMER!
Just think at the maintenace of a satellite or airplane software: do they call for problems every day?
How much cost to make an online software SURELY not breakable by hackers, reduntant lines, backups, legal problems, risks of class actions (see italian Aruba.it web farm!), and so on?
How relaxing, on the contrary, is the 99% customer responsability of a desktop app with no other cost than BUY + assistance contract, without the hassles of line problems, server problems, webfarm problems, block out problems, slowdowns, and everything that even if not generated from a good software fall anyway out on our head?! Yes also OS problems can often be pushed against the desktop app, but web app are SURELY, LEGALLY, directed toward the software house, while that's not true for desktop apps.
LEGAL: hacking, server problems, bugs: surely 99% better avoided with desktop apps.
So I don't see a real COST problem of a portable desktop app where the only part of the installation could be a DB server if needed, against a server (don't touch glassfish!) web based one online.
Obviously that a desktop app that is a mess of spaghetti code, piecies here and there, lots of external Windows components, and so on, is not comparable.
But I can assure that a good desktop application can be ZERO MAINTENANCE. I SWEAR! I must call my customers to see if they are still alive!
The only times a customer call us is for other reasons or because it is changing computer and want be sure that clicking "ReInstall" is OK.
I have more calls for email problems than for my desktop apps!
Intead of a big and costly workstation to run some often bad crafted Client/Server application you only need a Browser.
Where are big and costly workstations?!!! If you need one, you can SURELY abandon the idea to cope this problem with a server and browsers!!! Think also that a browser today require 200MB after 2 seconds of use: with the same amount of ram I can make the world control software for Obama.
Think also that today the worst computer of the world sold in a super store, is able to run very fast, every desktop application I can imagine to create, and 100 times faster than web apps... unless you have a Cray-X server or this one
http://cyberarms.wordpress.com/2011/03/29/nasa-systems-still-vulnerable-to-attack-even-after-warnings/(see the title).
Intead of having hundreds or thousands database connections each one possibly with its own credentials, in web applications you use few to support the same ammount of users.
Desktop app are only SPECIALIZED CLIENTS like thunderbird for email instead of using a browser. Nobody force you to have a client/server DB with a connection for client instead of apache web server that provides web service results, even I think a good free/open DB like PgSql has no licence problems and dedicated connections can be a benefit more than open/close or pool management as happen on classic web apps.
Intead of an army of help desk and field technicians to support client/server applications you need few.
My case: 2 thousands licences and nobody call us. I receive no more than 100 calls per year and I could even go better. On the contrary of your idea, I seriously should think to
CREATE PROBLEMS to justify manteinance contracts! We are now giving free assistance for NOT SOFTWARE RELATED software to the customers of our software to cope with the problem that our software has no problems!
And help desk calls drop almost to 0 because every body knows how to use a browser
You think the problem is about using the browser instead of using a native app? But a RIA app is WORST than a native app because ha controls the user is not accomed to. Furthemore, a desktop app can be identical to a web one if you want to worsen the interface!
no need of client software installation
What kind of installation need a portable app? DB? Depends! A web app need not only DB also installing a web server. We are talking of 1 for all server? OK the same for desktop app!
About unspecialized client (browser) against specialize client (portable desktop app): what if a client doesn't have flash, JRE, no java plugin, version problems, old browser, pop up problems, cookie not enabled, js disabled, IE security too high, FF no script add-on, banned IP, corrupted cache (some of my customer with sometime happend were directed on other sites by corrupted cache!
), refresh problems, and so on?
A desktop app need only 1 thing: the existance of the OS... and is surely there.
no update nigthmare
It depends: a portable app is only 1 executable: if a customer can't do this, it can't have a computer.
Think also that update of web components are more nightmare that a single monolitic executable. See my previous example: changing jQ stop TinyMCE working. The same happen for TONS of web COMMON components.
You are talking of update once for all? Solution: auto-update ad Firefox do. Don't forget that for web app, the browser is the client so is like part of the app, that has to be updated on computers basis one by one.
Almost any application can be crafted or converted to the web despite the technology used to do that.
Again: how to make automatic and direct printing, automatically using a printer instead of another, o using usb code bar reader, and so on with a REAL web app?
There are some that perform as fast as fat client application (Flex, ExtJS, Silverlight)
Other problem you remember me: some extreme technologies are not open source and tied to commercial companies like Silverlight or Adobe ones. Are they secure? How do they last? How you must invest in been aligned? Take a look at Silverlight: born yesterday is already at it's end as stated by M$ that is now more interested to HTML5.
Have you looked at JSON
I live on JSON! Xml ha 50% overhead!
Binary protocols: I have created some of them on my own with security enclosed.
Remeber: The slowest part of the system is ALWAYS the user
Surely and from the times of ENIAC, but this is true only on the overll view of a process, but has nothing to do with the problem exposed: the user perceive the difference of response from a real switch and a button independently from how dumb he is. Just imagine what he think of the web response when he is angry, stressed, caffeine addicted, and mobile phone dependent (that has the same effect as 100 coffees) and with 10 clients at hes desk waiting!
But believe me, Web based applications in general aren't slow if there is enough band width.
I believe you: buying a 10Tbps line always solve problems!
It's only a question of money. Especially these days I don't find many rich/prone customers ready to spend X web app when they can have a desktop app for X/100 and possibly una tantum payment.
That's why I think that web apps are OK only under some circumstances, not as a forced substitute for desktop apps. I think that ONLY when a web app cannot be avoided for 100% reasons, then that's the moment to develop a web app; not first.
So, every body is looking for web applications not because they are "best technology", "cute", "fashion" or whatever reason you want, is to lower TCO costs
TCO cost I think can benefit only in some limited situations. Especially if apps are intended for single offices and not 2000 offices all together, TCO costs are surely bigger. Why paying a web server/lines when no requested? Are customers Santa Claus? And what if you want to sell a small app once for all with no mainteinace? How do you give for free an online web server to 1 millions of peple? Are you Google?
Why so many people abandoned big management software web based and start developing back dekstop applications?
I want to hilight that I'm not contrary to web app. I have some so I know what we are talking about. I also have more complicated stuff than RIA web apps, such as hibrid software: desktop app + web API, communicatings with online services and RIA apps. I'm also very well inside into web business: I own 2 real estate portals, hundreds of auto-updating sites (from desktop app) esporting towards 65 real estate famous portals. I'm developing special complicated site/apps for Zurich Assurance Agencies, similar to a CMS customer updatable and with an engine able to brings official datas from Zurich platform to supply agency users of many services, such seeing policies expirations, reminders, and many other automatic services. And so on...
I'm not contrary to web app, web sited, web solution. I am contrary to those who think that from today on we must develop only on web server because is the best o the best and cost nothing. THAT IS NOT TRUE AT ALL!
IMHO, the real reason this myth exists, is that the more users are tied to a web service, the less can migrate or stop paying that service. Commercially speaking (on the vendors view, not customer view) having 1000 customers paying 50$ for a web app, is better than having 1000 customers having a dekstop app because you OWN them like a telephone company: if don't pay a bill at the end of the month you stop working! If they buy a desktop app and by contract there is no monthly/yearly costs THEY ARE FREE.
This is the MAIN reason web app/web service (in both meanings: "SOAP" and generally speaking) are so appealing. The TCO cost is 2nd reason but is valid only in very few scenarios.
The 3rd real reason could be mobile phones, ipads, etc.: a web app is almost ready for everything without developing dedicated apple app and so on. This could REALLY be a real reason to have even a bigger TCO cost. However is not so simple: who prefer Safari web app instead of apple Objective C app in the iPhone? (Just to make an example...).
So web apps ok, but when they are really useful and a must, don't forcing their role, going out of scope making web app for everything.