New technology enables rich Web UX (User experience), leaving the most important part for the server owners, while most of the programs run on the desktop.
Achieved by having all computational intensive and time consuming components, run on the desktop, and all data passed directly between app and
web client.
The client UX still goes to the server for the followjng basic things:
1. Permission. This is in the OS (in the technology), not in the application, so not easy to hack. If you hack the OS to not use it, most programs will stop, and you'll need to hack almost everything. Permissions are checked periodically (once every minute or so)
2. To get the current client (web) interface.
3. To save important but non data intensive information.
4. To upload / download data. This should be done "skype like" - where first a general overlay of the data is given, then it is focused additionally as time permits.
You get a rich internet application, by downloading the app, but the UI is "left on the web". The download could be done to a "cloud " app, not necessarily to your local desktop.
Websites could allow you to offer services using this software, so instead of the user buying a CAD program, they "hire you" to do the job. Then if they (the people who hired you) pay you (the person hired) then the software developer gets a small part.
So no more "Market" buying software. People USE the software, and pay for others to do a job for them with the software. The software developers get paid when the output from their program is used, instead of being bought by people who never use it, or people who benefit from it way over the value they paid for it.
Only two things stay on the real web server side: 1. The UX backend.[woops pressed ok] and 2. The security (authorization and authentication).
The Data storage can be on the server, but typically only some listing of what you have done will be stored there, and your info will be distributed between the pc's running the info, and some other pc's backing it up.