re: the web sucks

TL;DR: what are you trying to do right now that you can't already on the web?

i've followed the discussion about the web sucks with some interest.  i've spoken with a few people about it, and i've decided that i just don't understand what's being proposed.

i asked joe hewitt what exactly he was trying to accomplish.  his response: "anything that involves a camera, a microphone, or a video stream."  i responded that it's already possible, unless he's referring to mobile devices.  am i missing something here?

i can understand that the web feels like one giant bandaid.  i feel exactly the same way.  but you can do almost anything on the web that you want to right now, outside of accessing some of the native iphone functionality, for example. there are conflicting interests when you try and get specific about some of this stuff.

"browsers should throw standards out the window, just be innovative"

it's not my opinion, but i think most of the developers out there share this sentiment.  it's a hassle to build your product to work across different browsers.  i don't consider it being lazy, i just am not attracted to that scene.  i went through that in the 90s.  in order for me to be lazy, i need to actually want what the browser is offering, and then refuse to build for it.  otherwise it's just unnecessary to me.

i would guess that most people are drawn to iphone development because there are so many people using iphones.  cocoa and xcode are great tools to work with, but i don't think that's the primary reason a lot of developers are choosing to develop for the iphone.

i'll build something if it's cool but only works for one browser.  but that approach won't work for companies with a larger user base.  they now have to make every single change across different browsers, and possibly different versions within each browser.

"the web is dying"

i don't think the web is dying.  i think there's just more usage outside the web.

you may use facebook on your iphone, but you also use it on your laptop or desktop.  the only thing that happened with the proliferation of mobile devices is you're now able to use the applications more than you could have before.  so now when i'm standing in line at starbucks, i can write on a friend's wall.  but when i'm back at home on my computer, i'm still living in the browser.  i definitely don't use the browser as much while i'm on my phone, but that doesn't really take away from time i would be spending from my work/personal computer.

in order for the web to disappear, people have to get rid of their computers, because they live in their browsers on their computers.  maybe if the ipad replaces the laptop, that's possible.  but in a world where everyone uses an ipad to work from, i think they're still going to live in their browser.  are they going to launch the native wikipedia app every time they want to do a search there, or will they just open a new tab in their safari browser?  i would think the latter.

i think one example used was abc.  the argument is because the native app is better, people will end up going to far less often.  i doubt i'm going to pick up my iphone and open the abc app, when i'm here on my computer and could just open a new tab.  if the app is that much better on the iphone, maybe could benefit from a ui/ux redesign.  there's nothing on the iphone that makes it better which you can't already do on the web (including the ui elements, animation effects, gps awareness, etc).

i'm all for doing things a better way, but if people are going to rant, it'd be nice if they suggested something specific.  maybe write out their thoughts in an essay, because i can't understand it in 25 tweets.

it's nice to have a culture that isn't happy with the status quo.  but all of this doesn't really translate to anything productive if we can't at the end of the day actually do something to improve the web.  if someone is trying to create an interest in a new browser, you've got my attention and i'm eager to learn about it.  but beyond that, i wouldn't depend on the w3c to change their ways.

at the very least, i want to understand what's being proposed before i get behind it.  right now, i can't say that i really do.

7 responses
Great post mate, love the graphic.
Great post.. Here are some things I cannot do on the web though - as a web programmer I cannot use any language other that Javascript, I have to ship all the app code over the wire in TEXT format, libraries are limited, etc - as a web consumer I cannot (without using Flash/HTML5 -- Flash is good but an addon, HTML5 is still in the works) get UI comparable to native apps, peer to peer apps, and a lot more - infact, I'd ask what can HTML apps do well today without the heavylifting by server side code or using Flash?

W3C gets a lot of power to define and decide how the web platform progresses. As a body that does most work retroactively (incorporating existing browser features into the standard) and not tasked at innovating, I think their power is misplaced and should be partially handed over to where the innovation is taking place - HTML rendering engines and runtimes.

I wrote my thoughts about this here, and also propose a solution ->

hey amol,

i agree that there's no unified framework for ui elements, for example. apple has done a great job on that, but using javascript i'm sure you could pull off something comparable to cocoa's native ui elements if you tried. there might be some hacks, but it's definitely possible. i heard there's a library called "standard" being built for this purpose. but what's wrong with javascript?

at that, i'm not really sure whether trying to imitate iphone ui/ux is the right answer for web apps. the iphone was built for touch and gestural interfaces on a small screen, whereas a web app is a mouse-based interaction. very different modes of interaction. have you checked out cappucino or adobe flex builder? i wouldn't rule flash out, it's a viable xplatform technology that is installed on most computers. again, it all depends on what specifically you're trying to do (it's fairly easy to say "i want the web to be more like xcode and cocoa," but getting specific is what i'm trying to look for because otherwise i don't understand what's being discussed).

The main point is that today's web app technology stack is not as powerful as some of the native app technology stacks out there. Cocoa happens to be one such stack - it can't apply as it is to the web, but it is undoubtedly more powerful than HTML+Javascript. What seems to have throttled progress in the web stack is how it needs to be in lock step with W3C, an inherently slow mechanism.

Flex/Flash is good but why can't the web stack be as powerful? If browsers could have innovated freely as standalone platforms for last 10 years, I am sure they would have Flash-like capabilities and more. Of course, without standards the web would get fragmented and so the push for standards.

Now what if we can get the best of both worlds -- standards as well as browser innovation? I think we can with the multi-browser concept -
Saw this post linked to from Tim's; here's a post in the spirit of your call for rants: :-)
blaine, i agree with a better solution to xdomain http requests (post/get). there are some obvious security considerations, but i can still do it all using a proxy that wraps an entire page's html inside of JSON or XML, which can then be parsed by a remote application (widget).

as for xdomain web applications, it seems strange that a large web application would be hosted outside of its domain--can you cite any examples? the examples i read on your blog, such as a .doc editor, can lie on the host domain without a problem and eliminate the need for xdomain requests. you could use a push (ie comet/reverse ajax) mechanism for synchronization? actually haven't tried to build one of those, although i imagine it'd be quite a hack. i know there are solutions out there that exist, but worse case, you can build a native app that handles this.

we've done juggernaut before on the rails stack, and it can be a hassle to work with. but it's still possible. i just don't understand why some of your examples would ever sit on someone else's domain, and if xdomain is really necessary. some of that stuff can get pretty bandwidth/processor intensive and might make more sense as a native app (at this point, it would seem the argument is that the operating system is worthless and we need to do away with it, or allow the browser to entirely replace it?).

Jared: a specific example is the eBook reader I'm working on. Basically, I want to be able to read binary ePub files, wherever they're hosted on the web. This principle applies equally to any sort of binary document where the source is "somewhere else" on the web.

I can certainly run a proxy, or invite users to self-host the HTML5 App and run their own proxies, but the cost, privacy concerns, performance issues, and complexity of doing so are totally disproportionate to simply allowing cross-domain requests (without the cookies, of course).

Compare the functionality of a native application, that is free to make HTTP requests to any number of domains, to an HTML5 App, which is fundamentally restricted to a single domain. The only difference in many cases is that the user has "installed" the native application, which nowadays means that they've downloaded it and double-clicked on it.

Keep in mind that I think it's important that some form of installation intent is important, so that, for example, intranet administrators can prevent rogue web apps from making requests within the firewall. This "installation intent" is already present on the iPhone, where you can save an HTML5 App to the home screen.

In an era where HTML5 Apps are set to be able to do the things that native apps can: take photos, open local files, and run background tasks, it seems reasonable that they should be able to make HTTP requests!

To re-frame the discussion a little, Steve Jobs recently commented that developers should look to HTML5 if they don't like the restrictions that Apple has placed on application development. To do so is an admirable goal, but it's simply not possible at the moment to avoid native apps and the iTunes App Store and have a comparable experience on both the front- and back-end sides of development.