The era of installed PC/MAC applications will end soon
blog.filepicker.io
blog.filepicker.io
Here's what you can't do in a web app yet: anything that requires serious CPU horsepower or memory efficiency. That's a lot of things! And the people that think that clever interpreters for javascript are the solution to this are nuts -- everything comes at a cost. Even the most clever JIT is probably going to double your memory usage, which sucks for cache coherency, and, well, for memory usage in general.
I see all these news items here that can be paraphrased as "check out this thing we did that was cutting edge on desktops in 1996! Now it's on the web!"
And on one hand: yeah, cool hack; but I mean, you're running the equivalent of what people would have thought of as a super computer 15 years ago, but web standards are essentially confining you to making toy apps.
Anything that takes a lot more time to process than the round trip time, might be worth running on the cloud. CAD operations, for instance are very optimisable this way by having a local and remote version of a function such as a 3DBoolean, where easy operations are run locally and more complex ones leverage the network and run quicker than they would natively on the host machine.
There's also NaCL.
On the web I can't grab all of my Facebook photos, zip them up and send them somewhere else unless I write a monstrous pile of hacky code and break Facebook's TOS, but on a real computer it's absolutely trivial.
If I want to slap together a disposable playlist of videos on Youtube I have no idea how. Maybe I have to log in? What if I want videos from a bunch of other websites?
And even watching individual videos is terrible on the web. I either get a crappy website-dependent flash player or a crappy browser player, seemingly having lost the freedom to embed the video-playing application I want. The best user experience for watching online videos seems to be
1. Start buffering the video.
2. Browse to /proc/`pgrep plugin-container`/fd on my hard-drive.
3. Open the video in the player of my choice.
That's insane, but I do it regularly.
When the web lets me grab a text stream or a video or some music and lets me do what I want with it then it'll be ready for serious use. Until then it's just the "iPad" of technologies, a playground instead of a set of LEGO.
For example, note that the iPhone and Android ecosystems are very much prevalent amongst the average consumer, and they have already accepted the ecosystem that forces them to pay for digital content that they don't really own, or use Google and Facebook when the information they have at their disposal coupled with their privacy policies are making them increasingly scary.
It's strange, but I think the tech market is indifferent to violation of privacy or ownership rights. The success or failure is determined by functionality, UI etc. but not legal concerns. We have never before witnessed the creation of online ecosystems of this scope, so its understandable, but ultimately a mistake IMO.
Completely agree with you that Mom & Pop shops still rely in technology. They still arent conversant with Dropbox or Google Docs as much as we think they are. In any case they wont be the early adopters of such technologies.
On data 1. on dev stats-about 52K independant devs out there hacking on iOS and Android. Not sure if there organizations out there that have 52K dedicated devs building mobile apps.
2. on WebGL stats-51% of browswers support it currently. http://codeflow.org/entries/2012/apr/25/webgl-statistics-and... HTML 5 seems to be around 58% (Slightly dated data) http://www.streaminglearningcenter.com/articles/stat-of-the-...
3. On Digital natives- http://www.johnsoncontrols.com/content/us/en/products/buildi... http://www.pewinternet.org/Reports/2012/Older-adults-and-int...
2005: http://www.wired.com/science/discoveries/news/2005/08/68403?...
2007: http://www.cogniview.com/convert-pdf-to-excel/post/the-end-o...
2007: http://nick.typepad.com/blog/2007/04/brent_simmons_t.html
2007: http://www.codinghorror.com/blog/2007/06/who-killed-the-desk...
2008: http://www.cogniview.com/convert-pdf-to-excel/post/do-these-...
2009: http://allthingsd.com/20091119/chrome-the-end-of-desktop-app...
...Just a few examples. I'm just saying we've had this conversation quite a few times. Maybe this is the final nail, maybe it isn't.
Now we have powerful desktops and extremely powerful servers because we want to be more connected to each other and don't have the resources to replicate the full set of data on every desktop (i.e. space and processing power (performing operations on that set of data) limitations). Give it some more time and the whole internet will become a peer-to-peer network (Diaspora, who the fuck knows what else). Give it even more time and we'll have huge servers again for unforseen reasons (oh how I wish I was a prophet).
Or maybe we'll realise that we're repeating the same pattern and come up with a completely novel concept upon one of the iterations terminating. It's not really a cyclic universe, it's more like a spiral. I guess that this is where the singularity occurs.
Fundamentally, I'd argue that many users prefer to have their apps and data locally, at the moment.
In many cases, this is due to government or industry regulation – millions of HIPAA covered users/researchers will likely not move their data/apps into the cloud.
With the growing trade of industrial espionage and intellectual property theft, I fully expect that many companies will continue to be reluctant to put their data anywhere that will make it less secure.
Similarly, there will continue to be users who want to work in places where they do not have continuous or fast network connectivity (planes, trains, automobiles, boats, etc.)
Unless browser-based apps can offer local data storage and offline functionality, I'd argue that we're at least a decade away from such a mass migration to online services.
1) Security. By default, the web is untrustworthy. This means we have to treat any incoming web page or application as if it were filled with digital anthrax. The browser quarantines the javascript and HTML. Likewise, the server providing the service has to treat the input from the client in the same way to protect against SQL attacks and other hacks. This limits the user to a whitelisted set of features that were deemed safe by the application's programmers. Apps have less restrictions, but the parent platform still imposes significant sandboxing to prevent malicious attack.
2) Platform. While the ecosystem for Apps and web applications is indeed varied, they depend on the complex abstraction of the underlying platform. In the case of the web and app platforms, this is the web browser and tablet/phone OSs. In the case of the latter, that means the developer is beholden to "The Powers That Be" in order to get their app accepted. This works better on the web, but to get that freedom we sacrifice access to the underlying OS because of the security problems.
3) Persistent Connection. There is no such thincluding contenting as an offline web app. While tablets/phones can enjoy a disconnected existence, most rely on the assumption of constant connectivity, which is no way guaranteed. I ran across this issue driving across Texas, where there are HOURS of no signal on the interstate 10.
4) Data ownership, persistence, and portability. This is a nebulous area that is very important for anybody dealing with intellectual property. Most websites TOS claim they own your pictures and content, and many apps either don't save or have a proprietary format that can't be accessed outside of itself. Portability and persistence are linked because we are dependent on these services to be always up. What happens when something crashes or the company goes under?
5) Money. Ultimately, servers and developers cost money. A service is a recurring cost. The user pays for this, one way or another, through subscriptions or advertisements. Apps can be immune to this if they are entirely independent of the internet to function, but there still would be a cost if only to support the developer.
http://usejquery.com/posts/create-a-self-caching-website-rea...
Of course, the same thing is true of word processors, CAD applications, IDEs, photo editors, and ... basically everything but e-mail. Why do I want to use web apps again?
That being said, since the Chrome OS devices don't have a full suite of command line tools, I'd need Internet access to attach to a VPS. Current cellular data pricing makes this a sketchy requirement for me.
Then I remember the recurring web revenue model.
(My bet is on a convergence of web apps and thick apps, but I think it will be thick apps adding cloud-like functionality rather than HTML5+javascript.)