Fog Creek Software
Discussion Board




Why Web apps Won't rule the world

I agree web apps have their uses, eg as replacements for corporate apps that used to be written as multi user apps on a LAN, online booking etc. But most apps will continue based on compiled code (C++, Java etc) for the following reasons:

- Execution environments based on interpreted scripts have a short history, since you get better performance from compiled code. Eg who still uses UCSD Pascal, Progress, Dataflex etc?

- Apps that need cycles (encryption, math, AI, graphics, games) would be unusably slow if run as web apps and not as compiled code.

- Native apps are the only apps having the proper look and feel of Windows.

- An O/S and its API present a consistent programming interface. Web apps are inconsistent depending on the different browsers / javascript versions used. DLL Hell is a nasty place, but incompatible browser abyss is even worse.

- A large part of what we do each day is one person on one PC doing an individual task - the web is not relevant here.

- C++, Java, Delphi, VB etc are long lasting stable environments where most of what we know this year will work next year. Web programming are too rapidly changing to be useful.

- Every year many thousands of people try learning to program. Beginners programs using VB etc fit on a page and make sense. But ASP mixed with HTML never makes sense to me.

- Any computer made in the last 10 years runs compiled code. You need a web server to run your web app.

My conclusion - web apps are great for multiuser software, but a lot of software isn't multiuser and never will be.

bill@lingolanguage.com
Friday, June 18, 2004

***Native apps are the only apps having the proper look and feel of Windows.***

Very few people who are not Windows Developers care about this.  My grandmother has no problem using the interfaces on Fleet.com or MerrillLynch.com.

The only "safe" market for compiled code in the foreseeable future is gaming.  The rest of your arguments are so silly that it feels redundant to refute them.  Such as "You need a webserver to run your web app. "  Yeah.. and?

muppet is now from madebymonkeys.net
Friday, June 18, 2004


You're biased. ;-)

A Pterodactylus Ate My Baby
Friday, June 18, 2004

What would be really nice is to be able to easily apps that are designed to run locally, but with a web interface. So for example, when I click on my superfoobarinator app, it opens up a web browser window, and interacts with the user via the web browser interface

Then it wouldn't matter if the app was local or remote, and most of the platform specific (read display) sapects would be handled transparantly.

Still raining, still dreaming...

regards,

treefrog
Friday, June 18, 2004

also, by "compiled code" I mean "hardcore" languages like C++ and other client-side programming, since that's how you seemed to intend the term.  Obviously much web code can be compiled.

muppet is now from madebymonkeys.net
Friday, June 18, 2004

Why would that be nice?  I don't follow.  Why do you need to run the app locally?  Explain your reasoning, if you please.

muppet is now from madebymonkeys.net
Friday, June 18, 2004

> a lot of software isn't multiuser and never will be.

I agree. But:

Many times in the computer biz the old stuff never dies out (insert obligatory reference to COBOL here), but nonetheless loses momentum and focus. 

Thus being at the crest of the wave is important, and, conversely, losing that position is bad, even if the technology lives and still makes money.

Portabella
Friday, June 18, 2004

Well put Bill*

Mr. Analogy
Friday, June 18, 2004

so any vm like the jvm and clr are out? Yes the code is compiled to native but it's not c++.

Oh well, Sun and the .NET group can stop now.

fool for python
Friday, June 18, 2004

"well put"

lol

man you guys are too much.  Get out from under that bridge, you two.

muppet is now from madebymonkeys.net
Friday, June 18, 2004

How many years has it been now that people have been predicting that "thin clients" are the wave of the future.  Ignoring, of course, the fact that "thin clients" have been around for 50 years in the form of "dum termionals" connected to a main frame.

Web Apps have their place, but, ultimately, it's just the buzzword du jour.

A web-app version of Photoshop? yeah right.

Nigritude Ultramarine
Friday, June 18, 2004

The whole purpose of a "Personal Computer" is embodied in that first word.  Personal.  You can work independantly.  Doing what you need to do, when you need to do it.  Web apps have their place, but a wholesale move to make anything and everything a "web app" is a giant step backwards --- a return to the days of the dumb terminal connected to a mainframe --- the very thing that a personal computer freed us from more than 20 years ago.

Mo Hawke
Friday, June 18, 2004

Well allright.  In the world of home desktops, there's a good market for standalone applications that run locally.

In a corporate environment, I think they're just about done disappearing.

Since 100% of my experience is in corporate environments with corporate software, that's the perspective I tend to see things from.

muppet is now from madebymonkeys.net
Friday, June 18, 2004

In seems to me that, in very general terms, sysadmins are in favour of  - mainframe & dumb terminal / thin client / network computing / webapps - whilst end users are in favour of  - thick clients / rich clients / PCs -.  Each supports the option which gives them the illusion of control.

There are advantages and disadvantages to both styles of computer use and it all really depends on which group pisses off the top brass and to a lesser extent an honest evaluation of customer needs.

a cynic writes...
Friday, June 18, 2004

It's not my experience that end users give a rat's ass about whether their client is thin or rich, just so long as it works reliably and consistently.

If anything, in my experience, some of the more tech savvy end users prefer thin client apps because if they ever have a problem in the system, the solution is often to close their browser and then re-open it and log back in.

muppet is now from madebymonkeys.net
Friday, June 18, 2004

"Execution environments based on interpreted scripts have a short history, since you get better performance from compiled code. Eg who still uses UCSD Pascal, Progress, Dataflex etc?"

And on the flipside, look at how popular Perl, Python, and PHP are (hint: hugely so).

"Apps that need cycles (encryption, math, AI, graphics, games) would be unusably slow if run as web apps and not as compiled code."

You'd be surprised.  People said this 10 years ago when processors were over 10x slower.  See http://www.dadgum.com/james/performance.html for an interesting take.

Junkster
Friday, June 18, 2004

Most of the software I've written have had real memory or processor bottelnecks, were written in C++, and most certainly could have been vastly outperformed by a better written implementation in any language, interpreted or not.  Performance has a lot more to do with design decisions that  most other factors.

Keith Wright
Friday, June 18, 2004



Uh...

Right now, you can use just about any computer as a simple web server.  I have an AMD K6-450 that serves all of my hosting needs at home and multiple friends.


You're right in some respects, processor-intensive stuff (encryption, etc) will be difficult to move to server-side, but how many people actually do this?

In a regular office environment, the vast majority of the people's systems can and will be replaced by thin clients (back to how they started).  They're cheaper and easier to maintain.  I don't think most corporations will use externally hosted web apps though...

KC
Friday, June 18, 2004

Bill says web apps will never replace desktop programs because:

"Execution environments based on interpreted scripts have a short history, since you get better performance from compiled code. Eg who still uses UCSD Pascal, Progress, Dataflex etc?"

Those were all academic or proprietary tools that never had much push behind them. Visual Basic and Java both require execution environments. So does .NET. And Perl, Python, PHP, etc. are all interpreted scripts with long histories and no sign of going away. Your examples are poorly chosen. You get great performance from Fortran, too, but who still uses it?

"Apps that need cycles (encryption, math, AI, graphics, games) would be unusably slow if run as web apps and not as compiled code."

If they run on a big server they'll get plenty of cycles, and in a predictable, controllable environment. The whole point of web apps -- like thin client apps -- is that the computing power is concentrated on the server side, the client is just a display.

"Native apps are the only apps having the proper look and feel of Windows."

For many, many people a web browser IS a "proper look and feel of Windows." As another person commented most people don't really care about this; if they did they would be using Macs.

"An O/S and its API present a consistent programming interface. Web apps are inconsistent depending on the different browsers / javascript versions used. DLL Hell is a nasty place, but incompatible browser abyss is even worse."

Not really. There's a base level of HTML/CSS/Javascript support everyone can code to, it's only at the edges you get significant compatibility problems. And web APIs, if you can call HTTP, HTML, CSS, etc. APIs are vastly simpler than the Windows API.

"A large part of what we do each day is one person on one PC doing an individual task - the web is not relevant here."

Really? I keep browser windows open all day long for my email, news, intranet, source code browser, database browser, searching, documentation. The only desktop apps I need are Word, Excel, my text editor, and some admin programs. Look around -- web browsers and related tools (like IM and email) ARE what most people do on their PC all day.

"C++, Java, Delphi, VB etc are long lasting stable environments where most of what we know this year will work next year. Web programming are too rapidly changing to be useful."

C++ has been stable for about as long as HTTP/HTML/CSS. Java and VB require execution environments (oops), and change significantly every few years -- VB is right now being replaced by VB.NET. Most of what I learned six years ago about HTTP, HTML, and server-side web programming still applies today. And for the kind of programming I do the nearly-fossilized SQL language combined with ASP or PHP is important, and those don't change any faster than Java or VB.

"Every year many thousands of people try learning to program. Beginners programs using VB etc fit on a page and make sense. But ASP mixed with HTML never makes sense to me."

And C++ with STL does? Or Java? We should reject web programming because it will challenge beginners? Please. Eight-year-old kids put web sites together every day, but not many are cranking out useful C++ or Delphi applications.

"Any computer made in the last 10 years runs compiled code. You need a web server to run your web app."

The first statement isn't even true for a significant number of compiled programs, but any computer made in the last ten years (almost) can run a web browser.

"My conclusion - web apps are great for multiuser software, but a lot of software isn't multiuser and never will be."

That's a conclusion that doesn't match your premise or any of your arguments.

There are good arguments to support the thesis that web-based applications will never completely replace desktop apps, but you didn't raise any.

In any case the millions of web sites and web-based applications, a code and application base that grows every day, demonstrates just how wrong you are about this.

Greg Jorgensen
Friday, June 18, 2004

"- Apps that need cycles (encryption, math, AI, graphics, games) would be unusably slow if run as web apps and not as compiled code."

You seem to be confusing web apps with scripting, but the assertion is wrong either way.

For example, in Python you could perform math or graphics crunching in Python code, but if you need real throughput you would call a compiled module (yes, it's written in C or FORTRAN and compiled, so it is as fast as a compiled app...):

http://www.scipy.org/About/FAQ.html#fast

Tom H
Friday, June 18, 2004

***
And on the flipside, look at how popular Perl, Python, and PHP are (hint: hugely so).
***

Walk into Best Buy and tell them you'd like to buy a Word Processor written in Python.

The mentioned scripting language are admin tools and 99% of people who *BUY* software have never heard of them nor do they run applications written in them.

Andy in Austin
Friday, June 18, 2004

Walk into Best Buy and ask them for a Word Processor written in C or C++.

You'll get the same result.

Ryan Anderson
Friday, June 18, 2004

Andy wrote:

"Walk into Best Buy and tell them you'd like to buy a Word Processor written in Python."

Walk into Best Buy and tell them you'd like to buy a word processor written in C++. You will get the same blank look. No one cares what language their tools are written in, they only care if it will work on their computer and do what they expect it to do.

"The mentioned scripting language are admin tools and 99% of people who *BUY* software have never heard of them nor do they run applications written in them."

People should not choose their tools based on the implementation language, and I don't think anyone actually does. But Google, Amazon, Yahoo!, and thousands of other web sites and applications are based on "scripting languages" and work just fine for their millions of users.

This argument is at least partially a straw man: I don't think anyone claimed that web apps would take over the world, or would (or could) replace all desktop apps. But web applications have already replaced a lot of desktop apps, or given people applications they never had before. That's the point, not whether people know or care if their word processor is written in C++ or Python or .NET.

Greg Jorgensen
Friday, June 18, 2004

Browser apps have only given us two things:

a> an always up-to-date client (assuming the browser is up to par)
b> a declarative pagelayout/ui


In  every other respect they are VASTLY inferior to Rich/Smart/Fat clients whatever you like to call them.

Now (a) is purely a cultural matter. I was running win32 client software that did the auto-get-update-when-new-version-is-posted 10 years ago. Granted, .NET now puts this in the spotlight, but it was there all along.
(b) is a huge advantage, since it not only blurs the line between documents and applications, but it is much more accessible to many. That is why we need things like XUL or XAML.

Just me (Sir to you)
Friday, June 18, 2004

Web apps already rule the world.

Hotmail.  Google.  Ebay.  Amazon.  Netflix.  All the Yahoo stuff.  Blogs.  A heck of a lot of internally developed enterprise apps.

That accounts for a good amount of the total time people spend using computers.

Jim Rankin
Friday, June 18, 2004

"Many times in the computer biz the old stuff never dies out (insert obligatory reference to COBOL here), but nonetheless loses momentum and focus. "

And do you know what is happening today to a lot of CICS front ends to the COBOL apps.  CICS is being replaced with a web frontend.

The problem with programs running from the desktop is managing deployment and upgrades.  The pendulum, at least for corporate America is moving towards centralization through web apps. 

Sorry, but if you feel the pc is the end all and be all, you need to wake up.

Quad
Friday, June 18, 2004

"Web apps already rule the world."

That's only the home computer user market. The business, military and embedded systems market is far larger... and most business users do NOT use a web browser to do their hour-by-hour work.

Rick
Friday, June 18, 2004

"If they run on a big server they'll get plenty of cycles, and in a predictable, controllable environment"

You've never used a time sharing system. Some one is always chewing up all of the available cycles making your app run slowly. Now if you have huge communications bottlenecks, like current web apps, the CPU bottlenecks don't become apparent, but as soon as you can effectively use the server CPU to do usefull work, it's going to feel pretty cramped with everyone using the same CPU.

So, you buy a bunch of servers to spread the load? How is this better than putting the cycles on the desk right next to the user?

MilesArcher
Friday, June 18, 2004

It's still easier to manage applications on a few machines than per client

Quad
Friday, June 18, 2004

Wow, a holy war, excellent... zealots.  I love these.  Everyone should just remember, they're all tools in the tool box, some jobs call for different tools and few are the same.  I am currently doing a large volume enterprise accounting system and went with a web app because my client's IT department is incapable of properly maintaning  and administering a windows app.  There are many limitations to web app, but .NET (when using IE) has solved many of the large ones for us on the client side and it's up and out scaleability has solved most server side issues. 

The single greatest thing about .NET is that my nUnit test and migration tools simply reference my web app assemblies to use their logic. 

Lastly, most beginners I've seen do web stuff, and many people think languages are all the same, but to really get performance one must know the intricacies of a language and platform. 

D Nova
Friday, June 18, 2004

Stuff I used to get paid to do as desktop apps that now get done mainly or at least frequently as web applications:

Educational curriculum products
Multimedia
Corporate training
Document management/searching/retrieval
Product catalogs
Interactive brochures
Invoicing
Package/truck/etc. track/trace
Electronic distribution of music
Banking
Bill paying

And the web has opened up entire new application domains:

E-commerce
Intranets/portals
Email I can use from anywhere
Searching almost anything
Secure document transmission
Travel reservations for end users

And that's just some things I've worked on, off the top of my head.

I certainly don't think desktop PCs will go away, or that everything will become a web application. But anyone who thinks that web applications are a flash in the pan, or just for home users, or a fad that will go away, is kidding themselves.

If you work in a government agency, educational institution, or company of any size and a significant number of your time isn't spent doing real work in a web browser, you are in a minority that is shrinking every day.

Writing stable, robust, secure web applications is just as hard as writing good desktop applications. I think this thread stems from a wrong-headed notion that inferior "scripting" languages are going to wipe out "real" programming. I've been programming for 25+ years, in C, C++, and many languages forgotten and unused. Writing decent code in ASP + SQL Server or PHP + MySQL is the same challenge as writing in C++, just with different twists and gotchas.

Greg Jorgensen
Friday, June 18, 2004

I don't get this argument at all.  I've written "web apps" that do significant number crunching on the server side in C++.  Under light load I can perform up to 28 calculations on 28 different computers for one user AT THE SAME TIME.  It wasn't trivial to do, but it can be done. 

Deploying a desktop app that does something similar would have been nearly impossible.  I could see the tech support now. 

"What you should do is, put these 28 computers under your desk.  Oh you don't have enough outlets.  I can wait...  Ok good....  Now install this load balancer...  Great... login and startup the server process on all 28 computers.  Got that...  Now lets test it...  It is 110degrees in your office?  You should talk to your building manager about that."  It just isn't going to happen. 

This is why google rules.  I have access to 100,000 servers through a little little box on my laptop that says "google search."  The simplicity and power blows my mind sometime. Google could NEVER be a desktop app. 

The thought that heavily lifting can't be done in web apps is silly.  It is just that the heavily lifting is done at the server where it can be better managed. 

christopher baus (www.baus.net)
Friday, June 18, 2004

"I don't get this argument at all.  I've written "web apps" that do significant number crunching on the server side in C++.  Under light load I can perform up to 28 calculations on 28 different computers for one user AT THE SAME TIME.  It wasn't trivial to do, but it can be done. 

"Deploying a desktop app that does something similar would have been nearly impossible.  I could see the tech support now."

I think Apple's going to be pushing this particular envelope with the Xgrid stuff, and then MS will follow. Using spare cycles around the office transparently seems like a good idea waiting to happen when the system vendors make it easy.

Chris Ryland
Friday, June 18, 2004

The problem with saying blankly that an application like photoshop or microsoft office can never be a web application is that you are only looking at the current situation. In ten years time how powerful are computers going to be? Or, more importantly, how fast are internet connections going to be? I would say that it is going to be highly likely that by then most applications will be web applications, just because they are so much easier to distribute and do not require upgrades (you are using the latest version).

Daniel S
Friday, June 18, 2004

Daniel said:

"In ten years time how powerful are computers going to be? Or, more importantly, how fast are internet connections going to be? "

I don't doubt that computers or network bandwidth is going to be the issue. It is network latency and reliability. When I am working in Photoshop and tracing a long path, I want the only thing my computer to think about is processing that from my mouse to my processor to memory. I don't want to worry that some script kiddie is DoSing Akamai for the heck of it which is causing my app to be choppy.

Bad example, I know, because a well written app would copy enough to the user to prevent that from happening. But my point is that as processor, memory and bandwidth increases, so does the application's need for it. For example, I can run VS.NET EA on my PIII 650 with 512 MB of RAM, but I much prefer to run it on a Dual XEON with 2 GB of RAM. But when I first built my 650  there wasn't anything I used that needed that much speed.

CF
Friday, June 18, 2004

>> Why would that be nice?  I don't follow.  Why do you need to run the app locally?  Explain your reasoning, if you please. <<

This is an amazingly ignorant question.  Performance, Scalability, performance, functionality, local storage, easier to develop, performance, richer UI, single point of failure and did I mention better performance.  I talk to people all the time that hate their web app, because screens come up to slowly.

Other folks are also missing the point.  Web apps will always have their niche.  But the trend is not towards centralized computing.  The trend is (because it's logical) is towards distributed computing.  A web enabled desktop application is not likely to be displaced by a pure web application.  Why make the user download the UI everytime the app starts up, when it doesn't change all that often.  Since desktop deployment is a problem that is quite solvable and since deployment is the ONLY disadvantage to desktop software, desktop software will never be displaced.  In fact, many apps that have been implemented as pure web apps (by people who are obsessed with web technology) will drift back towards the web enabled desktop application.  For example OWA will never make outlook go away.  In ost cases, a web interface is just a convenient add on, nothing more. 

Those who argue that computing power will someday increase to the point that a web app will perform better are missing the point that it always be under powered.  Desktop power will also increase.  If 5000 people are using a web enabled desktop application, they have access to 5000 CPUs.  This is far more than the most powerful server you can get.  The guy who thinks 28 computers is impressive makes me laugh.  Of course, a web enabled desktop application can access as many web data sources and web services as required. 

Of course, apps like google that have no user interactivity other than entering a simple string are better implemented as a pure web application.  That will always be true.  We are not saying that web applications will ever disappear.  We're just countering the completely ridiculous notion that eventually, all apps will the pure web apps.  Hogwash.

Gunnar Skogsholm
Saturday, June 19, 2004

Thanks for comments...

"so any vm like the jvm and clr are out? Yes the code is compiled to native but it's not c++. Oh well, Sun and the .NET group can stop now."

By compiled code, I mean code that compiles to native assembly instructions, or to intermediate code that has near-native performance. Obviously C++, VB, Java and .NET languages are included in this. My point is, many apps need near-native performance and this won't happen over the web until we all have 10mbs links.

"Web Apps have their place, but, ultimately, it's just the buzzword du jour. A web-app version of Photoshop? yeah right."

This about sums it up.

"We should reject web programming because it will challenge beginners? Please. Eight-year-old kids put web sites together every day, but not many are cranking out useful C++ or Delphi applications"

Putting together a website is not the same as writing a useful app. The whole point of a computer language is you define what you want the computer to do, in a form that makes sense to the computer *and* to human readers. A web page is pixels, not a task.

me: "Any computer made in the last 10 years runs compiled code. You need a web server to run your web app." reply: "The first statement isn't even true for a significant number of compiled programs, but any computer made in the last ten years (almost) can run a web browser."

The first statement *is* true under Windows, unless you intentionally target later APIs. And a beginner programmer writing a web app needs access to a web server to publish code.

"Sorry, but if you feel the pc is the end all and be all, you need to wake up."

Don't put words in my mouth. I don't feel this and I never said it either.

"We are not saying that web applications will ever disappear.  We're just countering the completely ridiculous notion that eventually, all apps will the pure web apps.  Hogwash."

Sanity.

bill@lingolanguage.com
Saturday, June 19, 2004

"Web Apps have their place, but, ultimately, it's just the buzzword du jour. A web-app version of Photoshop? yeah right."

Maybe it's the buzzword du decade. And native apps were the buzz of the last decade. I think the point is that the next decade will clearly have both of these and more but will they be microsofts.win32..net.longhorn.api apps or apps built on open vms and standards.

fool for python
Sunday, June 20, 2004

*  Recent Topics

*  Fog Creek Home