

Ask: Why do web developers think the only applications people use are web apps? - henning

I'm getting kind of sick of comments like the following, which appeared on Joyent's blog Joyeur a few weeks ago: "The exciting software development of today is being done on the internet. Desktop, packaged software has many years of utility left, but one doesn't see millions of people adopting (=excitement) some installable desktop, client-side software the way people are adopting internet-based software."<p>What a bunch of bullshit. Doesn't this guy know that the popular file sharing apps have literally hundreds of millions of downloads? Azureus and eMule alone have well over 300 million, and Azureus is a Java app! That's more downloads than Facebook and MySpace users combined.<p>Desktop software has "many years" of utility left? You're damn right there are many years left. Gaming is going to be a $50 bln/yr market in a few years (with revenues disproportionately coming from highend 3D games) and the craziness with GPUs and general-purpose GPU computing is only in its infancy. Many of the things people will do with this fantastic new power (like protein folding) will likely have much greater significance than any Facebook platform app.<p>There's so much compelling stuff you can only do locally. Why does that suddenly become insignificant just because web apps are a good way to create highly data-driven applications?
======
nostrademons
Because stuff you can "only do locally" may not have that restriction in the
near future.

The web is a classic disruptive innovation. It's significantly _worse_ in most
measures of performance (speed, ease of programming, consistency) than
existing technologies. But it's better in a significant way (ease of
deployment), and it lets you do things that old technologies did not (all the
social-community stuff). Over time, the performance of both the incumbent
technologies and the new disruptive technology increase. However, customers
don't _need_ the added performance along the traditional dimensions. When
you're already at 30 FPS and photo-realistic images, how much better can you
get?

When the web first came out, it wasn't good for much besides documents, and
any sort of data-driven form application was very difficult to manage. Now
practically everything online has some sort of interactivity. Then people said
it would never be able to do office apps - and now we've got Google Docs &
Spreadsheets & Presently. Now you're saying it'll never do high-performance 3D
games - but somebody has already cloned Doom in Javascript
(<http://canvex.lazyilluminati.com/83/play.xhtml>). Over time, you'll see
webapps take over more and more markets from the desktop, until there's
nothing left.

(And then the disruptive technology will shift to something else, like cell-
phones or neuro-implants or whatever.)

~~~
henning
There's "does worse than fat local client" (but better for development and
hence a worse-is-better situation) and then there's can't do it at all and
will always lag behind so much that it doesn't make sense to think about it.

Are you going to put up servers so that I can solve large-scale quadratic
programming and machine vision problems? Are you going to ask me to run a non-
linear optimization routine written in _JavaScript?!_

You expect me to accept circa-1994 graphics in games? You expect me to pay for
that?

What kind of dreamworld are you living in?

Google Spreadsheets hemmorages, huffs and puffs if you have more than several
dozen rows - it robs power users of most of their keyboard shortcuts and has
no kind of extensibility at all. It uses up dozens of MB of RAM with a blank
sheet. It's a real Excel killer alright. Which is amazing because Excel has
only seen minor, incremental improvements in the last _decade._

You're telling me quasi-3D games I played in 1994 on a machine 300x slower
than the one I'm using right now constitutes approaching parity with local
native code?

In several years, a language like JavaScript will run on the machines
available then the way C++ runs on today's machines. But when that happens,
machines with many cores will be ubiquitous, and the ridiculous lag will still
be present - would you like to run your embarassingly parallel program with 1
core or 32? (1 of course, it's online! Wowzers!)

~~~
gwenhwyfaer
You're absolutely right, in some aspects. Some things will always be better
done locally; it's ridiculous to contemplate writing a 3d game without access
to a 3d API, for example. And it's silly to have a ton of cheap processing
power sat under your desk pretending to be a 3270.

So I wonder if the future is going to be client-server at all? Perhaps the
arrangement will be that in exchange for using the services of webapp X, you
contribute your processor to act as part of the distributed processing for the
backend part of that webapp. Your request might end up being processed on your
machine, or it might be processed three thousand miles away whilst your
machine is processing someone else's request... If peer-to-peer file transfer
applications (or, you know, natural history) have taught us anything, it's the
value of distributed, decentralised, cellular systems. The webapps we're
seeing right now are incredibly primitive, and have barely scratched the
surface of such things - but when they do, when people start talking JSON or
AJAX or some other ETLA to each other's _browsers_ rather than to centralised
servers, when the only difference between a web browser and a web server is
that the browser has the GUI loaded - then we'll really see the value of
webapps...

...hmm. Excuse me, I may be a little busy for a while...

------
nextmoveone
I dont think the only apps people use are web apps. I just think that the
majority of apps are moving to the web(basically, like you said, data driven
applications), like CRM applications, Payroll applications, everything
enterprise due to 'SOA's(Service Oriented Architectures), and more.

The web doesn't require a download, or an install like emule, kazaa, or
bearshare. Web based applications also have less of a chance(if any) of
infecting your computer with a virus like file sharing programs.

Gaming(imo) will always be native to the machine, only utilizing a connection
for competing against other players.

So, it really doesn't become insignificant, it just takes more a back seat to
applications that allow for more human interaction(any social network),
profit(crm apps, soa's) or fame(myspace, youtube).

~~~
rms
Data portability on web services is great too.

------
stuki
I think the reason is simply that desktop software is in many ways already a
mature field, with few earth shattering developments in the last decade or so,
while web apps are a more recent phenomenon, and hence more 'exciting'.

Most of the recently hyped webapps, like MySpace and Facebook, are really apps
that currently make no sense as desktop software. Their entire raison d'etre
is to provide lightweight communication between huge masses of people. As
people start demanding more from them, I expect them to start adding desktop
offshoots in order to support more sophisticated behaviors and interactions.

------
Readmore
Gaming isn't making all those Billions off of PC users, it's dedicated game
consoles that make all the money. The reason console gaming is growing so much
compared to PC gaming is because of ease of use, which is the main reason web
apps are so popular.

PC gaming is broken precisely because of the problems with writing software
for the millions of PCs out there. Web development, on the other hand, is like
building a game for a console, you don't have to worry about all the hardware
that's out there, you just write to the environment. While writing web apps is
not like having a unified development environment it's a lot closer than
trying to write a program that will run on every hardware configuration out in
PC land, and Mac, and Linux, and Solaris, etc.

Just as console gaming is slowly killing the PC gaming industry web
applications will slowly kill classic PC applications. That doesn't mean that
the PC is going away, but the future definitely lives on the web.

~~~
mynameishere
_Just as console gaming is slowly killing the PC gaming industry_

What an odd statement. The atari had a larger share of home games than any PC
of the day. I don't play many games, but the superiority (economic and
practical) of PC gaming is pretty obvious. Consoles have a marketing
advantage...they're toys and don't have to mess around with on the matter.

------
bokonist
Every point of friction the user encounters when trying to use a product is
point where they will stop and do something else. Desktop software is too
difficult to try out. People are scared of spyware. Configuration and system
compatibility can be a huge hassle. Under Vista, there are a zillion security
warnings to click through. And in business environments, computers are often
locked down. Forcing users to go through that just to try your product will
turn off the majority of your site visitors, resulting in much lower sales.

Another key factor is that with web based software you can do continuous
releases, which is key in a competitive environment.

The only things that should be written as desktop software are applications
that absolutely cannot be done in a desktop environment ( like games and P2P
file sharing). But even then, doing it in Flash is better than requiring an
actual download.

------
thomasswift
So all those devs out there are using web apps to create the 'web apps'.
Sorry, but i don't use a broswer-based text editor to create shit.

I don't really like the way you worded the question, but I think the number
one reason is because it gives you ease of portability between places and that
what people like.

Do you use del.icio.us? I do, because I can save stuff to it then when I go by
a friends house and want to show them something, i go to my account and click
it. I don't have to remember it or google for it, but I also use the regular
bookmarks on my browser.

I do get your question and have to agree with this on one thing photoshop for
web.

------
comatose_kid
I hear all the 'web dev taking over the world' arguments, but no one has
addressed the major issue - latency.

Anyways, I don't think the future will be 100% web app or 100% client app.
Probably a mix of both (ie, imagine a 3d renderer running locally, but having
smooth access to millions of geometrical models stored on the web).

