Ask: Why do web developers think the only applications people use are web apps?
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 ] threadThe 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).
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.)
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.
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?
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!)
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...
Are you talking about the average Denny's customer? <ba bing!>
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?
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.
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.
The Doom clone was why I specified 'useful' in my last comment ;)
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.
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.
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.
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.
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.
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).