> As someone who has tried to do both cutting edge native and web iPhone apps, iPhone Safari is a joke compared to iPhone Cocoa
What he is basically saying is developing natively instead of for the web can give a better result, and he would prefer to drop cross-browser compatibility and just have users launch whatever browser he developed the app for.
The question is why develop for the web at all if your apps only run in a certain browser? He seems to make the assumption that while his app can’t run in all browsers, the browser it does run in is available “on all platforms”.
I think he needs to rethink what the purpose is with HTML, semantic markup, and having a standard.
I don’t follow — are you saying I don’t understand his critique because I only look at this from a developer’s point of view?
He is seeing “the web” as an easy way to deploy applications. The app store is exactly what he needs, easy way to deploy stuff to users and no cross-browser requirements.
He makes the argument that while the app store is great in that regard, it sucks because he is locked to one mobile phone (OS) — at the same time, he is making the argument that the Cocoa platform is so much better because individual browser vendors did not (and were not allowed to) innovate, he downplays the compatibility problems by saying that users can just launch another browser (and indirectly, buy a new computer / OS if the browser is not available on their platform).
His point is that it's pretty trivial for a user to change their browser, these days. Changing their phone is more difficult and expensive. Hence, it would be better for users if developers developed their apps for a specific software platform (e.g. Firefox) as opposed to a specific hardware platform (e.g. iPhone).
Trivial was probably the wrong choice of word. Regardless of most users' lack of knowledge on the subject, it is a much easier (and cheaper) task to change your browser than to upgrade your phone in mid-contract.
I think the real driving force behind web UI improvements, that isn't being picked up on the article, is the open, shared standard. If there was a cool new piece of functionality in, say, Opera, that allowed users to instantly buy whatever it was they were vaguely thinking of or something genuinely revolutionary, it wouldn't make much of a difference to the web unless it was backed by an open standard. This is largely due to the reason shown by your video - most users wouldn't know how to go about installing a new browser to take advantage of the functionality.
However if the standard behind the new super-fun-happy-wow web technology is shared, then it can spread across a majority of the web-using population comparatively quickly, because other browser makers will include an implementation of it within their browsers. If a browser is open-sourced under a BSD-type licence, this technology spread can happen even faster.
I know for a fact that my grandparents would find it a big deal to have to launch different browsers for different sites, and I'd venture to suggest that the majority of web users feel the same.
I know for a fact that "normal" users were well aware that some web sites didn't work with some browsers, usually had two browsers installed, and tried the other browser when a web site looked broken in their favorite browser. It isn't a difficult concept, no different in users' minds than having two different kinds of stain remover in their laundry room. They didn't like it, but they had no problem understanding it. My mother, who at 67 is old enough to be a grandmother, still tries IE when something doesn't work in Firefox.
The question is whether a browser innovation war would provide benefits that would compensate for the inconvenience of installing and using several browsers. I think it would. Actually, I think it would be much better than the first time around, because we've finally reached the point where most web sites can work across all browsers. (Perhaps it would be best if the impulse toward complete compatibility and uniformity across browsers came and went like the tide.) A web site that only worked with one browser engine would be at a severe disadvantage compared to a similar web site that worked in all browsers. Browser innovations would have to enable really radical improvements before they were adopted. That's assuming that web developers are smarter this time around, which I think they are. If there's a surge in incompatible innovation, you won't see banks or insurance companies jumping on the bandwagon. Nor will you see any plain-jane sites that mysteriously require one browser or another. If a site requires you to launch a certain browser, it will be immediately obvious why, or you'll never go back to that site again.
WebKit is already doing this. They constantly implement new features that are later imported into HTML5 or CSS specs. For example, canvas, shadows, CSS transforms and CSS transitions were all things that WebKit introduced in its nightly builds and the standards groups later adopted specs for them. Just Google any of these technologies and you'll see the posts introducing them on the Surfin' Safari blog years before the initial version of the respective standards.
A great rant by a practitioner who wants progress to go faster, ideologies and committees be-damned.
But, a little revisionist about why browser innovation slowed. It wasn't Microsoft yielding to standards demands that slowed their pace; it was Microsoft's de facto victory in (for a time) neutralizing the business possibilities of competitive browser development.
It took a while for alternate models that could sustain further browser evolution -- the Google placement payments to Mozilla, Apple's sponsorship as a complement to their other platforms -- to grow to take the place of the original Netscape dreams.
Hewitt's prescription seems right, though: a bit of healthy disdain for waiting for standards bodies before deploying new things, and some added respect for even those proprietary offerings -- like Flash -- that kept expanding capabilities and user expectations when browsers didn't.
The revisionist history stood out to me as well. We're supposed to believe that MS stopped developing IE6 because "the DOJ and web standards commies intervened", and it was just coincidentally at the same time they killed of Netscape in market share?
We're supposed to believe that the W3C (founded in 1994), and the Web Standards Project (founded in 1998), had to work for years and just coincidentally managed to browbeat MS into stopping development on IE at the same time MS beat Netscape? That they were even capable of "bullying" a company like MS into stopping development on one of their products?
My own exposure to web standards was Zeldman's first "Designing With Web Standards" book, published in 2003. My experience has been that the standardistas have spent most of their time trying to push MS to further develop IE to support standards (which it still lags at), not trying to hinder innovation.
My impression of IE is that Microsoft stopped developing it right at the point when they realized "Oh shit! If this gets any better, it could replace Office!"
And ironically they stopped after it was just good enough to do so. With the critical piece being XMLHttpRequest. Which they added so that they could implement Outlook on the browser.
I don't know much about the past, but in at least the past 3 years, Microsoft has been incredibly committed to IE development and enabling it to be more standards-compliant than ever. They've been consistently pouring money, time, manpower, etc. into making IE the best browser that's out there. This is one excellent example of the fruits of our labor: http://samples.msdn.microsoft.com/ietestcenter/
And no, I'm not speaking on behalf of my employer; it's just my personal opinion.
They've had to put some resources on to IE as they didn't bother for the previous 8 years and the stench of the rotten putrid corpse of IE6 was even starting to get to them.
When a single someone can make a tiny javascript file that fixes nearly all the rendering problems in your browser (Dean Edwards, IE6.js, IIRC) then it starts to look really bad for your abilities as a multinational megacorp that's supposed to employ some of the finest programming minds.
My impression is that it's still a pretty small team, if only they'd done it consistently over the last 10 years.
I think the real solution is not to provide more advanced features in the browser, but to provide more primitives. Lots of programming languages over the years have, at least for a while, compiled to C. C is an almost universal primitive. The web doesn't have a universal primitive. HTML, CSS, and JavaScript are high level languages. If you try to use a high level language without ever accessing lower level functions, you will eventually run into something you can't do. The web has hit that point. We need a way to fall back to lower level languages when the abstractions become too leaky. The web needs a C: a language which can do anything if you put in the time and energy to make it work, which is blazing fast, and which is available everywhere.
Can you explain what some of those lower level functions are on the web that need a lower level language? As far as I can tell, the lowest level of the web is sending a static document to the requester via HTTP. Any lower than that and you are talking about TCP/IP sockets, etc.
In the domain of Operating Systems this makes more sense, because the OS or kernel is generally written in the low level language that is being asked about (i.e. C). Any higher-level language is generally implemented in terms of the low level language, making it available as a fall back for low level tasks (i.e. tasks on the OS/kernel level).
I'm just not sure how this concept of lower-level languages applies to the web.
I'm talking low-level in terms of design and page manipulation, not architecture. CSS is the lowest level available for formatting websites. For formatting desktop apps, you can go straight to the graphics card and paint individual pixels on the screen. There is simply no equivalent in the browser. I suppose you can, strictly speaking, paint individual pixels in the browser with absolute-positioned divs, but this is clearly impractical.
Overall some very interesting points, but as I remember it, MS stopped innovating in IE when the competition died off. Netscape was in the gutter and went OSS, which ended up meaning a massive gap in releases while they rewrote the thing, and Opera was still for-pay. The DOJ intervention was too late to have any impact.
Hence, IE6 remained stagnant until MS started feeling some heat from Firefox.
These people liked IE, the worst browser ever?!? They reject standardization?
If they really want a history lesson, then return to the pre-browser days -- yeah, you had to #ifdef and port your code over and over and over, always chasing the latest APIs (the time of origin of that horrible phrase, in fact).
These people liked IE, the worst browser ever?!? They reject standardization?
Apparently you weren't doing web development back in the Netscape 4.7 days. :)
IE 5.5 and 6 were actually big steps forward for web standards back in 2000-2001. They were actually decent browsers then. Not perfect, but no one was. The problem isn't IE6 - it's that Microsoft stopped with IE6 for such a long time.
Good point - but I thought IE6 was pretty spiffy at the time too. I like the reliability of current browsers, but agree with the guy that all development feels performance related, and there's not much in the way of new functionality.
Tabs were the last thing that struck me as innovative. I was hoping Google's sidebar idea would take off but it doesn't seem terribly popular. I wish the social internet (not so much facebook, but discussion forums like this or persistent comment communities) were decoupled from content, such that commentary was not siloed on the same page as the content.
You will soon, if you want it: competent Windows machines for basic tasks will soon be the price of a mid-range piece of software. There will be plenty of reasons to prefer other platforms, but there won't be any need to choose per se.
> […]
> As someone who has tried to do both cutting edge native and web iPhone apps, iPhone Safari is a joke compared to iPhone Cocoa
What he is basically saying is developing natively instead of for the web can give a better result, and he would prefer to drop cross-browser compatibility and just have users launch whatever browser he developed the app for.
The question is why develop for the web at all if your apps only run in a certain browser? He seems to make the assumption that while his app can’t run in all browsers, the browser it does run in is available “on all platforms”.
I think he needs to rethink what the purpose is with HTML, semantic markup, and having a standard.