Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

To extend from the question things like googledocs can handle word, excel and powerpoint so why aren't all programs being moved to web applications with the use of smartphones(blackberries, iphones and androids) and tablet pcs(ipad) increasing why isn't there a move to get every program browser based? With the increased capability of CSS and javascript surely this makes sense no need for clunky java programs which are 10 years old which just write to a database, that a rails/django application could probably do quicker and cost less money to maintain.

share|improve this question
31  
Well, to start... not every application is about writing to/reading from a database. –  Anna Lear Apr 25 '11 at 20:48
27  
What we really need is a web based browser. ;) –  JD Isaacks Apr 25 '11 at 20:57
18  
Some people like that things work without an internet connection... –  user1249 Apr 25 '11 at 20:59
9  
Sorry, it's just not a good question. –  karlphillip Apr 25 '11 at 21:00
9  
Some programmers think that the db-backed "Create, Read, Update, Delete" (CRUD screen) stuff they do is what "programming is". The "Other stuff" never occurs to them. –  Warren P Apr 25 '11 at 21:22
show 25 more comments

13 Answers

up vote 28 down vote accepted

Because not all programs require for their operation resources reachable over the Internet. Many are just local applications that in their concepts have nothing to do with accessing the web.

Besides, Internet connectivity isn't ubiquitously available in every country, in every town, in a non-inhabited place, in the train, on the plane etc. And even if it were, there is always the risk of the connection going down and interrupting your work at the worst possible moment. And even then, if you were to accept that risk, there is the additional danger that the service loses your files, discloses them to a third party due to a bug or a security issue, suddenly starts to charge [more] for the usage or even goes out of business one day. You want to have the security of a local application, local machine and local data storage.

But the general trend holds, many desktop applications are being transformed into web software.

You may want to read this:

All Programming is Web Programming

share|improve this answer
    
Thats a very interesting article. I was looking for something like that with the question. It's not what I got. I guess its not for the good that we move to the web. –  Dean Apr 25 '11 at 21:07
    
@Dean, if you look at and understand how electronic devices work, you'll answer your own question. –  d-_-b Apr 26 '11 at 4:46
2  
Even if internet connectivity is easily available, there can be good reasons to turn it off. Anti-malware slows systems down hugely (by a factor of at least 4 or 5, often by much more than 10 times in my experience) and no matter how much you run, you can still be unlucky. My solution - dual boot. Windows never goes on the internet - the device driver is disabled. I don't need any background anti-malware - an occasional scan is enough. I've been doing this for over a year. There's minor hassles, but I have no intention of switching back. –  Steve314 Apr 26 '11 at 12:12
    
@Steve314: It is actually quite smart. I used to live similarly in the times I couldn't yet have Internet connectivity at home. It was quiet and relaxed time. –  user8685 Apr 26 '11 at 12:42
1  
Hmmm - thinking about it, needing to reboot to switch from internet stuff to most other stuff has that distraction-avoiding advantage that Dean denies too. A barrier to that "I'll just check my e-mails" and "I wonder what's happening on SO" temptation. –  Steve314 Apr 26 '11 at 14:23
show 5 more comments

Because it doesn't make sense for EVERY program to be a web-app. Some examples of things I don't think would work well as web-apps (though it's probably possible to deliver them via browser plugins, Flash apps, or some sort of network-basd application delivery system such as Steam):

  • Graphics tools such as Photoshop, Maya, Blender, Illustrator.
  • IDEs such as VisualStudio, NetBeans, other development tools such as source control (well, this one is a maybe but I really prefer the desktop versions of such things)
  • Database-based code, such as some of the stuff I write a work (data conversion).
  • Games - Let me know when I can play Crysis 2 by loading it through a browser. ;)

Why should web-apps replace all desktop apps? It's a different platform suited to different tasks.


EDIT:

It seems that "web-app" and "program in the browser" are being used almost interchangbly. I don't think they are necessarily the same thing. You can take a program and deliver it to a user via Flash or some other plugin and it's a program that's available on the Web, but I'm not sure it's the same as a "web-app", which I'd say is a program that runs on the server (not on the client via plugin) and are usually CRUD-based and have some database in the backend. Of course, there are probably situations that overlap.

Most of the examples I mentioned could in theory be (and in some cases have been) made available over the web as browser plugins or Flash apps, but that doesn't mean I think it makes sense to build them as server-side CRUD-baed web-apps.

(original answer's been edited for what I hope is increased clarity)

share|improve this answer
3  
Let's not forget other high-end software such as audio/video/scientific apps. –  d-_-b Apr 26 '11 at 4:40
5  
I'd add word processors, spreadsheets, etc. to that list. Yes, web based alternatives exist there, but they're clunky and data security is a major problem. –  jwenting Apr 26 '11 at 7:09
2  
Photoshop - you must explain to Adobe, that they doing something wrong: photoshop.com/tools; Games: explain that to OnLive –  vartec Apr 26 '11 at 11:50
2  
The target audience of a tool like Photoshop Express is totally different to Photoshop. –  FinnNk Apr 26 '11 at 12:11
2  
@Dan Ray: I'll have to look that up tonight. Have you tried it? How does it compare to running it locally? –  FrustratedWithFormsDesigner Apr 26 '11 at 13:46
show 6 more comments

The web software haven't just yet reached the power of complex desktop applications. Besides, their user interfaces are usually annoying to use with a keyboard, they aren't available offline (big one), have worse performance etc. Some people just don't want to, or can't (think CIA or FBI), have their data on others servers. If the service goes down, what will happen with your data?

Some special software needs specific hardware support, e.g. support for graphics tablets. I don't think Javascript can handle that.

They just aren't ready, and they will most likely not be. Offline support matters a lot, so does performance, and keyboard friendliness etc. etc.

And, it would cost a lot to move all programs to the web and in many cases, the benefits are actually few.

share|improve this answer
add comment

I'll go against the grain here. Hopefully I won't be downvoted into oblivion.

Most applications are being converted to work in a browser.

For every example I've read in the thread, there is a browser version. The reason is very simple: most people may prefer just visiting a site than downloading and installing an application for their simple needs.

The point is: if you expect a 1:1 copy of a desktop application, the technology is not there yet. If you want a simplified version, you may be better served by an online application. No install, no maintenance, possibly free.

From working in the field, it's evident there is a large trend of moving applications "to the cloud". This is generally intended as an alternative, with pros and cons.

The truth is - the two are complementary. One does not exclude the other.

share|improve this answer
7  
Avionics and flight control? Air traffic control? Assembly and manufacturing robotics on a production line? Medical equipment? There are hundreds if not thousands of problem domains that have absolutely nothing to do with "the cloud" or web based applications. –  DaveNay Apr 26 '11 at 1:17
1  
@DaveNay: they aren't desktop applications either. –  vartec Apr 26 '11 at 13:08
1  
@vartec: The OP's question was "Why aren't all programs being turned into web apps?" He did not exclude embedded systems, and he did not specify desktop applications. His question was regarding "all programs". –  DaveNay Apr 26 '11 at 15:01
2  
@DaveNay: but from the context it's implied. You wouldn't expect to have avionics running on Blackberry, would you? –  vartec Apr 26 '11 at 15:05
1  
@vartec: The "implied from context" monster has never bitten you in the butt has it? ;-) –  DaveNay Apr 26 '11 at 15:28
show 2 more comments

Here's my short list as to why:

  • Not all devices you program for have access to the internet
  • Not all applications can assume the user will have access to the internet
  • There are a great deal of applications that wouldn't make sense to be a web app
  • Though web development is getting better, it's still not as strong as non-web technologies

Those are the ones off the top of my head. I'm sure there are more.

When you start writing an application you need to decide if it makes sense to make it a web app or not.

Also, I'm not buying that it's quicker and costs less to maintain. As soon as you get into doing anything complex, that argument quickly fades.

share|improve this answer
add comment

It's a non-starter on the client side: Javascript doesn't have anywhere near the power to manage real spreadsheet, word processing, or presentation documents.

It's just as much a non-starter on the server side for the following reasons:

  • Security - I don't want other people seeing my bits;
  • Accessibility - I don't want to lose access to my work if a server goes down or a tree falls on a cable somewhere, especially if I have to present to someone in the next 20 minutes (the server ate my homework);
  • Performance - I don't want to sit there and wait while my 40 MB PDF document makes its way through a congested pipe;
  • Applicability - I don't want to use a browser-based tool that's clearly inferior to a dedicated desktop tool (think Photoshop, programming IDEs, video editors, etc.).

Keeping everything in the cloud seems like a great idea until you really start thinking about it. I mean, yay for Google for trying, but my experience with Google docs has not been entirely positive.

share|improve this answer
1  
userfriendliness... I have clicking a million things when a simple keyboard shortcut should suffice. –  jwenting Apr 26 '11 at 7:11
add comment

Sarcastic mode on. Because those web apps need a non-web platform to run. Sarcastic mode off

Is not feasible to turn all non-web apps into web-based app because of:

  • budget
  • real reasons: why would an existing app that works be turned into a webbased one?
  • some limitation of web apps
  • dependency of connectivity. You don't want to add a weak link in the chain if you don't need it

I'm sorry but web is not the answer to everything...

share|improve this answer
add comment

There are reasons why what I'm working on is not going to the cloud any time soon.

First, it's proprietary and internal software, like most of the software out there. There's many more reasons to push shrinkwrap software onto the web than internal. We don't care if our people can't use the software from home or a hotel room. We supply the platforms, so we don't have to be at all cross-platform.

Second, it's a lot easier to make a program work well not on the web. We've got MFC and Visual C++, and that's the main stuff we developers need to know. Web apps require a lot more different things, and most serious web apps are written by large companies.

Third, it's harder to get performance, and we do have to worry about performance for this software. Having to send large amounts of data over HTTP is going to be a lot slower than keeping it in local memory particularly with network difficulties, and will prevent our people from working at all if the network is down.

share|improve this answer
add comment

I think it'd be cute trick to get Crysis 2 running in a browser using HTML & CSS.

And then, of course, much of the world doesnt have internet access thats reliable and fast enough such that they are guaranteed to have it whenever they want to use an application. Nor are people always eager to store their data on someone else's servers (cough Amazon EC2 outage cough)

share|improve this answer
    
I didn't mean for high performance programs like that. I meant for business use such as word processing and spreadsheets and things connected to a database. –  Dean Apr 25 '11 at 21:00
1  
@Dean: Business programs go beyond word processing and spreadsheets, and many of them don't have anything to do with databases. –  FrustratedWithFormsDesigner Apr 25 '11 at 21:03
6  
@Dean, you specifically asked about 'all programs'. I only answered the question you asked. And there's still my 2nd point. Also, Fred's point is right on - not all business apps are boring old data entry screens with a few graphs. Also, a lot of those boring old apps have been moving over to web based applications when that platform is appropriate for them. –  GrandmasterB Apr 25 '11 at 21:22
1  
I guess Dean got surprised that there are other things than websites and Flashgames out there... –  jwenting Apr 26 '11 at 7:12
1  
First of all in HTML you'd have WebGL (not enough for Crysis 2 yet, but in theory could run Crysis 1 if someone would bother to port it). Secondly, currently most popular gaming platform -- Steam, is a web app (early versions were MSHTML based, current one is WebKit). –  vartec Apr 26 '11 at 12:04
show 2 more comments

I must say that there have been a lot of good answers already, but I can't imagine something like SAP being easy to do in Rails/Django. Even if it was easy, why would somebody spend a year or so re-writing something that they spent over a decade perfecting to keep up with the latest fads? Do some programs fit well with the "web 2.0" experience, yes. I believe Google has done really well with that (such as Google Docs, etc), however, people do need to face the fact (even Google) that not everything will be a nice little web app.

share|improve this answer
add comment

I don't like the phrasing of the question. But neither I like the answers. To address some issues

why isn't there a move to get every program browser based

This is just plain wrong, web application is not the same as browser based application.

Internet connectivity isn't ubiquitously available

  • HTML5 explicitly addresses question of offline web applications.
  • Google previously achieved same thing with Google Gears.
  • On the other hand are many WebKit or Mozilla based applications that use web technology stack, but are actually totally offline and have nothing to do with web (e.g. Komodo Edit).

examples of things I don't think would work well as web-apps in the browser:

  • Graphics tools such as Photoshop, Maya, Blender, Illustrator.

Adobe introduced browser based Photoshop Express in 2008. Of course it's not full Photoshop yet, but enough to prove that it would eventually be possible. And actually if you think about that kind of apps, it would be great to have them web based, because it could use the computing power of the cloud. I mean, you'd click 'render' and have result in split second, not few minutes later. Another example I could give is Publitas ePublisher, it's browser based, it's in cloud.

Games - Let me know when I can play Crysis 2 by loading it through a browser. ;)

  • the most popular PC gaming platform nowadays is Steam. It's cloud, it's client is web based (current version uses WebKit, old one was using MSHTML). Same goes for most popular one on consoles (Xbox Live);
  • WebGL -- not yet on par with DirectX 11, so no Crysis 2 yet. But should be enough to implement Crysis 1 (if anyone would bother to port the engine);
  • gaming on demand - like OnLive, Gaikai or OTOY;
  • through browser plugins - like QuakeLive.
share|improve this answer
    
Some good points! I don't use Steam so I have to ask: When playing a Steam game, is the game downloaded onto the user's machine once and persisted there, or is it loaded from the network every time the want to play? As for QuakeLive, how much of the game binary is in the plugin? Is it just a plugin that installs and wraps around the old Quake game engine, or something else (I couldn't find those details on the FAQ page yet). –  FrustratedWithFormsDesigner Apr 26 '11 at 13:45
    
@FrustratedWithFormsDesigner: for Steam it's downloaded once per machine and then synced with latest version each time you go on-line (Steam does have offline mode also). It's necessary, you wouldn't want to download 10GB every time ;-) The games themselves are still running on client's computer (although you can have settings and save files synced with the cloud). For QuakeLive, sorry, I don't have any idea. –  vartec Apr 26 '11 at 13:56
add comment

Because writing applications for different platforms and/or losing out on market share because it only runs on one is just too much fun. I look forward to the day when all I have to do is create installation packages. If I were to get real lucky, I could do the customer support for installations as well.

Maybe the question should be, "Why do programmers still use languages I don't like?"

Trust me, if an application that the users would like the interface to be on a browser could be created, it probably has or soon will be as web technologies improve.

Most of Evernote's users are on a free plan and they still make apps on several platforms. I'm sure if they just had a browser version, life would be much easier, but that's not what people want/need.

With experience, one day you'll be able to conjure up some applications that are not suitable on the web.

share|improve this answer
add comment

Simply because time has not come yet! Probably once we have something like UWS (Uninterrupted Web Supply) ;).


PS: Web app does not mean that it will be on cloud, it may reside on local secure server so security logic may not be used for Desktop apps.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.