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

11 points by henning ↗ HN
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."

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.

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.

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?

25 comments

[ 5.1 ms ] story [ 82.5 ms ] thread
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).

Data portability on web services is great too.
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.)

Agreed, I think the dominance of the web is inevitable.

Kind of as an experiment and part out of not wanting to reformat my diseased hard drive, I spent about 3 months last year booting from a minimal Linux and running Firefox (and a pdf viewer) as my only apps. I really didn't miss the desktop a whole lot. In the end, the only reason I run desktop apps today is to take some load off of the browser. I like Meebo more than GAIM but the really intensive javascript apps just use way too much memory in Firefox, especially when you have 12 hour Firefox sessions.

I'm looking forward to my future web-only existence... and I'll be first in line for the neuro-implant.

> the really intensive javascript apps just use way too much memory in Firefox, especially when you have 12 hour Firefox sessions

I suspect that huge improvements in the state of Javascript interpreters will really start to change the equations. If JS is Lisp in disguise, there's no reason why JS engines can't start to benefit from the decades of evolution put into Common Lisp runtimes.

Come to think of it, what if a JS engine got fast enough that the browser itself could be written in Javascript?

For now, we're getting some nice incremental improvements. Firefox 3 Alpha is worth using just for the improved JS engine.
Hey gwen...what do you mean by this: "If JS is Lisp in disguise"?
Well, look at parenscript for example. It's quite easy to translate Lisp into JS. Moreover, the first prototype of JS engine in Firefox was written in Lisp.
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!)

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...

"does worse than fat local client"

Are you talking about the average Denny's customer? <ba bing!>

<<Over time, you'll see webapps take over more and more markets from the desktop, until there's nothing left.>>

Maybe. I think for this to be to be the case there needs to be a better thin client than the web-browser as currently conceived and perhaps higher level ontology (OWL?).

But I am willing to be corrected. Do you think JS-browser integration as it currently exists is powerful enough for the stuff you are talking about?

I think there needs to be a better thin client than the current web browser, but I think that client will be an evolution of current web browsers rather than a new app.

Here's how I see it playing out:

JavaScript libraries will build increasingly more full-featured UI libraries. That's happening already with JQuery and YUI and Scriptaculous and Dojo. The increasing complexity will put increasing demands on the client-side processor, so browser makers will respond with faster JS implementations and specializing JIT-compilers (like Psyco or the JVM).

Meanwhile, SVG support will grow - it's already supported natively in Opera and partially in Mozilla/Firefox, with Safari and IE support under development. Once that's widely available, it'll open up a whole bunch of new app categories - games, grapics apps, maybe even photo manipulation if JavaScript gets high-speed array operations and access to pixel buffers. When enough people start using SVG, I could easily see browser makers implementing their SVG support to take advantage of 3D hardware acceleration.

How long do you expect all of this will take? Will we see full SVG support in one year, two years, ten years?
It's here now (via plugins, development versions, etc.), the real barrier is adoption. If you can dictate your user's browsers, you can use SVG. Problem is that for something to be useful on the web, it really needs to be present without needing plugin installation on the vast majority of browsers. I see that as taking a couple of years.
Any good examples of people doing useful things with SVG that I can take a look at?
A lot are actually using the <canvas> tag instead, which is a bit more widely-supported in present browsers, though I believe it's a bit less flexible.

There's the aformentioned Doom clone (http://canvex.lazyilluminati.com/83/play.xhtml). A bunch of JavaScript charting libraries have sprung up recently - one I'm familiar with is WebFX (http://webfx.eae.net/). I did a real-time charting widget for my former employer that graphed stock prices in real time on your browser; unfortunately I can't show you that. SVG's also apparently getting popular in bioinformatics for viewing protein-folding and other biochemical interactions.

Doesn't this come back to the problem of ontology? Given the different possibilities, what makes you so sure SVG will come out on top? Can it exist w/o a standards org like W3C to promote its adoption?

The Doom clone was why I specified 'useful' in my last comment ;)

(comment deleted)
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.

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.

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.

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.

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.

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).