Understand The Web
. Updated: .
Perceptions of the web are changing. People are advocating that we treat the web like another application framework. An open, cross-platform, multi-device rival to Flash and Cocoa and everything else. I’m all for making the web richer, and exposing new functionality, but I value what makes the web weblike much, much more.
The last few days have been tough for web evangelism. Or at least, tough for those of us who like to be regarded as level-headed.
First, HP purchased Palm, and immediately declared their commitment and belief in WebOS. A great move for both companies for sure, but cue comments like that of @bgalbs on Twitter: “The biggest tech company just bet its mobile strategy on the web”
. Similarly, Joe Hewitt proffered “Hopefully we’ll look back on today as the day the mobile web began to eclipse proprietary mobile platforms.”
.
Meanwhile, the feuding between Apple and Adobe regarding Flash on iPad took an unexpectedly public twist, with Steve Jobs writing at length everything that John Gruber had already described about defending his platform from third-party influence, but also that Apple are choosing to invest in native running open standards. Jobs incorrectly brands this ‘HTML5’. He also criticises Flash for being proprietary whilst evangelising the H.264 video codec (licensing for H.264 is not ‘open’, either.)
Adobe hustled a number of responses. Rapidly, a live interview with CEO Shantanu Narayen. Whilst everyone mentioned so far is guilty of muddying terminology, not saying exactly what they think they mean, and/or some general platform and framework-related confusion that I’ll elaborate on below, Mr Narayen is the first to throw some incomprehensible bullshit into the day. He refers to “open content”. What is that? Content wrapped inside an impenetrable, proprietary, single-vendor container format? Flash, by design, locks content away (in exchange for other supposed benefits.) Comments like “Flash is an open specification” is unhelpful too: The page hosting the Flash specification doesn’t specify a license, the document itself just exerts copyright and disclaimers on behalf of Adobe. Furthermore there are no native or competing implementations of Flash, nor is the development of Flash open to participation.
Adobe has for years relied on bullshit merchandise to remain relevant in the ‘future of the web’ debate. Three years since the launch of the iPhone visibly snubbed them, they have not shipped an acceptable, functional version of Flash on any other handset. If the upcoming Android release doesn’t perform well, there will be no reprieve.
Web Evangelism got hard. When Zeldman wrote Designing With Web Standards, there were two standards that mattered: HTML and CSS. They were the path to cross-browser compatibility, and thus they were the route to a brighter future (both for design, and for information publishing.) 12 years later, holy shit. JavaScript joined the standards party, and then became quickly obfuscated by frameworks. CSS3 stablised, Webkit extended CSS further (and it’s still called CSS3), a plethora of new standards on the server and client: OAuth, OpenID, Contacts, Connect, Geolocation, microformats, widgets, AJAX, HTML5, local storage, SPDY, ‘The Cloud’…
All of these things are vying for attention and evangelism. Some of them are great, some of them are stupid, but they’re all clubbed together under this vague banner of ‘The Open Web’. It sets expectations and demands from developers, who are all the while being wowed by the efficiency and quality of proprietary application frameworks like Flash and Cocoa.
Besides memory, the half-life of most things on the internet is short. Frustratingly, terminology is no exception. From the coinage, we lose meaning and specificity within a few years, sometimes only a matter of months.
‘HTML5’ now refers to a collection of related client-side technologies, branded together as a product. It is no-longer just a hypertext specification document, and everything that concerns document semantics is being ignored anyway. This is usage that Steve Jobs employed this week.
‘Open’ is lost.
- • The H.264 video codec is not open. It is patent encumbered, and there is a financial obstacle to license those patents. Yet, despite this, H.264 is bundled in with discussion of an open web stack. In practice it may be ‘open enough’ to function on the web. Operating Systems and Browsers will license it for playback, and the authority that grants the licenses is continuing to allow free (as in beer) usage of the codec by web publishers. But a change to those terms, and eventual enforcement of fees on big publishers is possible.
- • Adobe are certainly full of shit here, though. Absolutely full of it that it makes me angry. ‘Open content’?! Locked up inside Flash containers? That’s as closed as can be. At least if you uploaded it as a flat image you could run content through OCR it and recover the text! Let’s not get stated on their open screen project. To Adobe, ‘open’ means ‘cross platform, on platforms that Adobe provides support for, for as long as Adobe chooses to support them.’ That’s very different. Their use of ‘open’ is an outright lie.
Then, there’s ‘web’.
On this word rests most of our understanding (and misunderstanding) of what can and can’t be reasonably achieved with applications in the browser, over HTTP. What does it mean to be a ‘web application’? What are the expectations of a web application? Or of any web content, for that matter?
Off the back of the Apple verses Adobe mudslinging, Joe Hewitt went on a very, very long rant about the state of ‘the web’ as an application platform.
In parts, I agree, certainly with regard to the process of standardisation. Standards are supposed to be derived from implementation, and standardised technologies will be better for real-world iteration. Heck, our entire microformats process is based around codifying examples in the wild. The failure of CSS to define a layout syntax (choose from three) illustrates the need for implementations to lead.
However, the suggestion that Microsoft were bullied out of innovating the web, or that developers should pursue whizz-bang APIs to the point of single-browser dependency leaves me sour. This is the short, perhaps selective memory that the internet suffers from. It is not acceptable to me that 21st century knowledge retention has become so short and shallow as to be overwritten by influential ranting on Twitter. A greater tool for the dissemination of misinformation has never been known.
For those too young to remember, IE was innovating like crazy from 4.0–6.0, right up until the DOJ and web standards commies intervened.
Microsoft Internet Explorer did not stop innovating because of ‘standards commies’. That’s offensive and wrong. Web standards advocates went after Microsoft because they failed to adequately support basic, foundational web standards like CSS, necessary to publish an interoperable web of information in which Firefox and KHTML and everyone else could even compete, let alone succeed. That early CSS push was also a vital, huge step in making web content universally accessible beyond visual media.
Microsoft’s development of enhancements like ActiveX, and XMLHttpRequest
were not being prepared to be standardised for the web with W3C participation, they were invented in such a way as to inject proprietary, Windows-only code into the web. Tools not to make to web better, but to make it dependent on Microsoft. Chris Wilson has since written more accurately about the plateau in IE development on his blog.
Contrast Microsoft’s method in the 90’s to the more recent CSS efforts coming out of Webkit: Extensions to CSS are followed promptly by proposed specifications (such as CSS Animations). Microsoft, from the top down were trying to ‘own’ the web. (More recently, to their immense credit, they’re in the right game. The aforementioned CSS Grid Layout module is from Microsoft engineers.)
Meanwhile, Sachin Agarwal is writing that The Web Sucks, again talking about the web as an application platform:
Web applications don’t have threading, GPU acceleration, drag and drop, copy and paste of rich media, true offline access, or persistence. Are you kidding me?
There, in that quote, is where I want to pull all of this together. Sachin’s complaint has absolutely nothing to do with the web. Think about that word; ‘web’. Think about why it was so named. It’s nothing to do with rich applications. Everything about web architecture; HTTP, HTML, CSS, is designed to serve and render content, but most importantly the web is formed where all of that content is linked together. That is what makes it amazing, and that is what defines it. This purpose and killer application of the web is not even comparable to the application frameworks of any particular operating system.
That’s the kicker. We talk about ‘web applications’, the ‘open web stack’. People are citing HP’s purchase of Palm and investment in WebOS as a victory for the web. We talk about applications built using HTML, CSS and JavaScript in the same breath as content published using HTML semantics.
Want to know if your ‘HTML application’ is part of the web? Link me into it. Not just link me to it; link me into it. Not just to the black-box frontpage. Link me to a piece of content. Show me that it can be crawled, show me that we can draw strands of silk between the resources presented in your app. That is the web: The beautiful interconnection of navigable content. If your website locks content away in a container, outside the reach of hyperlinks, you’re not building any kind of ‘web’ app. You’re doing something else.
Palm WebOS applications are awesome, but they are not part of the web. An app might interact with data on the web, and they are built with similar HTML, CSS and JavaScript technologies. That’s great, but they are not a connected, interlinked part of the web.
We’re talking about two very different things: The web of information and content, and a desire for a free, cross-platform Cocoa or .NET quality application framework that runs in the browsers people already use. The latter cause is louder, and risks stomping over the more valuable, more important, more culturally indispensable part of the web.
I’m not saying that better, more abstracted JavaScript APIs are unwelcome. I’m not saying that APIs to access devices like webcams and microphones aren’t useful or even important. Even WebGL, as far out of my field of interest as it is, would be a great thing.
But, the open publishing nature of the web, and the requirement that information be accessible, will inherently cause it to lag behind other platforms. The success of the web, the success of this impossibly huge network of information is because of the open, universally accessible, cross-platform, cross-device nature of web content. Cross-platform user interface sucks. It’s a nightmare of inconsistency and wrong, momentarily obsoleted assumptions. But cross-platform content? Well that is content. It’s articles and poems and pictures and movies and music, everywhere! How brilliant is that! Calling for browsers to make massive proprietary advances (even with the caveat of standardising later), suggesting that users should tolerate swapping between browsers, or even devices, to access particular content because you’ve obscured it behind a bespoke API is an absurd throwback to days we’ve left long behind; a proposition that would result in information and culture being locked away. Nothing is worth that, especially not ‘web applications’.
If you reach the point of building a browser-based application that you depend on so many proprietary enhancements that your users can only access it using Google Chrome, I think you’ve picked the wrong platform. If you want to built the most amazing user interface, you will need to use native platforms. A single vendor’s benevolent curation of their framework will always outpace the collaborative, interoperable developments of the web, whether it’s locked in a standards process or not. When they do a good job (like Apple have with CocoaTouch) their platform will succeed. But the web will always be the canonical source of information and relationships. That’s what it was built for. Blogging at length about how much the device APIs suck won’t ever undo that, nor change the fact that turning HTML in a rich application dialect is still a very new idea.
Personally, aside from all of this almost ideological disagreement over what the web is for, and what you can reasonably expect it to be good at, I honestly think that ‘Desktop-class Web Applications’ are a fools folly. Java, Flash, AIR and QT demonstrate right now that cross-platform applications are always inferior to the functionality and operation of the native framework on a host platform. Steve Jobs is right in his comments that third-party frameworks are an obstacle to native functionality.
Creating generic, non-native interfaces that run in a web browser won’t be any better than the cross-platform applications that came before (see Cappucino.) The idea of undermining the core function of the web to achieve that is detestable.
Links
To share this entry, or reference it in commentary of your own, link to the following:
- Permalink: https://benward.uk/blog/understand-the-web
- Shortlink: https://bnwrd.me/1dCoce
You can file issues or provide corrections: View Source on Github. Contributor credits.
Comments
Previously, I hosted responses and commentary from readers directly on this site, but have decided not to any more. All previous comments and pingbacks are included here, but to post further responses, please refer me to a post on your own blog or other network. See instructions and recommendations of ways to do this.
Ben this is brilliant, you clarified a lot of thoughts and captured my current feeling about the web.
I don’t know if this fits well with your words but I think that the WebHooks project (http://www.webhooks.org/) is going in the right direction. What do you think about that project?
Your article is, indeed, brilliant. As always, with time and lots of marketing and buzzwords, people forget about the connstruction, to focus about the tools.
Of course having JS that is the same for every browser, or OpenGl in browser would be nice. But the strength of the web is its openness, the fact that anyone, who has a good idea, can put it in practice, and share it with everyone.
What you describe in this article is what happened to a french system called ‘Minitel’ (for those that understand french, please tkat a look at a conference he gave about it : http://www.fdn.fr/Internet-libre-ou-Minitel-2.html).
Openness of the web isn’t (really) related to the technologies, langages or stuffs, it’s about the content, linking into it and sharing it. Sharing the knowledge.
Web is not gallery! It’s place of our life there are informations, education, sience. Adobe is thinking: Some gadgets can change web in beautiful world, but for example I don’t want fireforks and fun on websites – I want informations…
Great article !
Great essay, but if I can respond to only one line, it would be:
> I honestly think that ‘Desktop-class Web Applications’ are a fools folly.
Hear hear.
I am not a fan of the Bauhaus movement’s output, but they had something when they talked about “honesty in materials.” They over-applied it like zealots — but I’d like to see even a little of it applied to the web.
I design web interfaces and I always build for the web, building interfaces uniquely suited for the browser. I am 100% against anything that tries to pretend to be a desktop platform, like Cappucino.
Anybody who looks at the web and sees it looking like the desktop in 5 years, is somebody who can’t think beyond what’s already in front of them. It’s a common mistake when evaluating technology to think of it as a fixed replacement for something that already exists.
Good article and I’m glad you’re ALSO calling out Adobe on some of their hypocrisy because Apple deserves to take some of the heat but Adobe isn’t also getting their fair share on most other blogs in my opinion.
I honestly had to wait a while before posting a comment because I had to let myself cool off. I watched the interview with the Adobe CEO yesterday and I was simply enraged. I am fed up with this kind of BS especially from people with such power and influence. And I am only 22!
This was a great article and I think you did a wonderful job of bringing up the faults on both sides of the apple vs. adobe argument.
People get lost in their tools far too easily and forget what the original purpose of those tools were. Don’t forget that the web is just a tool to connect the world with the answers they need.
Thank you, for the kind comments, everyone.
@Matteo: I love WebHooks. Jeff is a friend of mine, and they’re a fantastic design. They should’ve been on the list of web technologies vying for evangelism.
Where do you draw the line between “applications” and “content”? Is there a clear line that can be drawn?
Great article!
.bq Java, Flash, AIR and QT demonstrate right now that cross-platform applications are always inferior to the functionality and operation of the native framework on a host platform.
So right! Just talked about the same topic with my brother recently and had the same examples.
GMail for example is okay – but it will never integrate as Apple Mail does on a Mac.
As you pointed out: web is information. And online services might have some good AJAX functionality (like flickr or delicious), enhancing web services.
But do users really want “web _apps”?_
Shawn is right:
bq. Don’t forget that the web is just a tool to connect the world with the answers they need.
Fine, I’ll getting off your damn lawn!
Saying you want more web and less apps is a fine thing, but the fact of the matter is that apps are on the web today are here to stay. Apps on the web go back to Hotmail and longer. And no, it’s not webby, but then again: nobody really wants you to link into their webmail anyhow. The ‘web’ part in that is not about silk strands, it’s only about the platform.
Since that platform already exists and since people love their apps on it, the way forward is to do both and to do both well. The web will still be great for documents, and nobody is taking anything from that by extending it with apps. And if you are going to do apps, you should do it right. That’s where Cappuccino enters the picture.
Documents are not applications and applications are not documents so don’t try to do both at the same time.
Thank you for saving me the time to put all those thoughts in order. I agree 100% with what you said. HTML5 offline apps are not webapps (hybrid in the best case scenario), but having browsers become better platforms for html5 apps is surely something that would benefit the web as well (the same UX benefits would extend both ways).
One facet of the web which fails to materialise from this otherwise excellent reflection on what the “web” is or isn’t, is the transactional side of business.
The web survives and thrives today as a means to conduct business. The content is there, but there’s a business model behind it. Sure, there are lots of companies that make no money providing free content, but they live a short life and then either transform successfully into a viable business, or they wither and die, leaving their ideas behind to be picked up (or re-invented) elsewhere.
The transactional side of things – that which I traditionally consider a web application, but server side – is very important. Designing good, usable, accessible forms, shopping baskets, banking / financial pages takes more than just content management / HTML wizardry. It also requires discovering something of a “best practice” especially in the accessibility arena.
Key e-commerce players are (or should be) very much required to hold fast to the semantic, accessible web. I’m not just talking about a web readable by those with disabilities – I’m talking about Tim Berners Lee style (paraphrasing) as available as possible to anyone, whatever their mother tongue, whatever their terminal, whatever their access speed.
Enjoyed reading you.
Regards
-Simon [@fruey]
You fall into the typical trip of thinking of Flash as an advertising content development tool and/or a media content viewer. The reality is that it is much more than that, and with the advent of Flex, has become a very, very powerful tool for developing RIA’s both behind the firewall and on the general web.
Ironically, I would bet that the bulk of H.264 content being viewed on the web is being viewed via Flash-based viewers. Adobe has supported H.264 for 3 or 4 years now.
Finally, many (most) of Sachin Agirwal’s complaints about web apps are enabled by Flex/Flash.
While I respect your background and experience, it seems clear that you have not done much work with Flash/Flex, and certainly not enough to justify some of the opinions you’ve expressed as “fact”.
A few more thoughts: You fail to criticize the limitations of HTML (many of which exist with HTML5, also). Try to implement a multi-threading client with a browser today. Try to do a reliable drag-and-drop UI in HTML. Try to handle binary I/O (which is up to 5-10X more performant in many cases compared to XML or JSON for large datasets). Try to handle complex authentication schemes in AJAX client code. Try to create an interactive chart in HTML (with or without Canvas) with > 5000 datapoints on it and decent performance.
Bash all you want, but there are many use cases for which an RIA client plug-in, such as Flash, Java or Silverlight, is considerably more capable than HTML or HTML 5 will be. You have to look at the use cases, and avoid generalizations, to avoid coming off looking like a fanboy.
@Mark A.
I think you might have missed some of the points of this article. But the fact that you missed them also proves the author’s point.
When you start have requirements for your application such as multi-threading, binary I/O, data & memory intensive charts, etc. you should move to a platform like Flash/Flex. Having this tool being able to be accessible in a browser, and communicate with data over HTTP through web services, is a must and you should do that. You are building a “tool” that is focusing on being an application, rather than sharing content.
What the author is criticizing is lumping EVERY completing technology that runs on the browser as “the Web.” His worry is we compromise what the “Web” is good at, the sharing of information across a vast web of information, to compete with RIA’s like Flash, Flex, Silverlight, etc.
As developers, the web is convenient. Building desktop applications that have to communicate with other applications across all sorts of different internet connections and barriers is painful. When you build a web application, all you worry about is if the person can access XYZ site over port 80/443 and you are good. So naturally we want to move more to this style of publishing tools for people. But demanding that a website should be able to compete with everything a desktop application, will compromise the very things that make the web great.
Ben, you make a great argument for the web as a way to disseminate content. But the web today isn’t just sharing blog entries and static pages. There are real benefits to running applications over the web rather than on the desktop. Obviously, creating the best possible UI isn’t one of them, but on the other hand we have ease of administration and maintenance, cross-platform portability, instant sharing and backup, and plenty more. Gmail is an obvious example: with browser-based mail I can access my mail from anywhere. This is a real advantage over an email client that’s tied to my desktop. The same goes for Zoho writer, Google docs, the Salesforce applications, and so on. Even if these things were bound in Flash, they would still offer benefits over client-side desktop applications. As the browser becomes more capable, it makes sense for applications migrate into the browser rather than run on the OS.
So yeah, of course it’s better for web applications to follow open standards and to be browser-neutral rather than locked inside of Silverlight or Flash or whatnot. But abstracting the desktop away is real progress.
I really enjoyed this post. I captured part of my own thoughts in a short entry to myself in my personal journal last year, partly due to a lot of hype coming (sadly) from the Mozilla Corporation and some bandying about the phrase “open web”:
Screw the “open web”
Give me an accessible web.
“Open web” is now a hollow catchphrase.
An accessible web necessitates an open web.
Aww. My Textile-formatted comment was stripped.
I agree with all of this very much, except that I’m not sure cross-platform toolkits show that you can’t make a good cross-platform toolkit.
Now, it’s true that 90% of my UI exp is with Qt and GTK and so I can’t compare too much, but I have found them (esp Qt) many times easier to use and with nicer results than Cocoa or Win32GUI. The biggest complaint I hear about cross platform apps is that they don’t look native, but that’s not the toolkit’s fault. The toolkit (if it is sane, which most are these days) use native widgets anyway, so they’re just a wrapper around native. What makes them not look native is the design choices devs make. I can make an ugly Cocoa app and a pretty Qt app, that’s all up to me and not the toolkit.
The best rule of thumb, I find, is to design for mac users, because they’re the only ones who care what it looks like anyway. No Win32 user is going to complain that the app looks too mac, but mac users will complain about anything they can think of to complain about :)
@ “Standards are supposed to be derived from implementation”
You’ll find many who would argue with that assertion. In practice, that’s often the path to a “standard” with application-specific dependencies; e.g., ODF and OOXML. Generally, professional standard developers take the position that implementations should follow standards, rather than being derived from implementations.
Sometimes there is need for a de facto standard to become a de jure standard. But the best results seem to flow from collaborative development of a standard by those interested in implementing it, with the draft standard’s features being negotiated and implemented during development. Witness HTML and CSS.
Some of the comments you made about flash are wrong
Lets see
“Furthermore there are no native or competing implementations of Flash, nor is the development of Flash open to participation.”
Gnash, Scaleform and SWFDec are competing implementations. Somebody even did a limited implementation in javascript
“Comments like “Flash is an open specification” is unhelpful too: The page hosting the Flash specification doesn’t specify a license”
Another page has this information. As per the open screen project, you can develop a flash player, the only problem is with codec licensing.
http://www.adobe.com/aboutadobe/pressroom/pressreleases/200804/050108AdobeOSP.html
Creating flash content has always been allowed. Back when adobe and macromedia were different companies, Adobe released an authoring environment which created flash. And there were other animation programs which wrote into flash.
I think Flash is as open as a specification !
I couldn’t agree more. Sure there are small details one could argue, but I agreement with the sentiment.
Ben, I think your post is awesome. I’m thinking along similar lines and responded more fully on my blog site:
http://quietlightfalling.blogspot.com/2010/05/ben-ward-says-link-to-it.html
The short version:
I think presentation and content can be separated more clearly while maintaining the linkability of web content without sacrificing the kick-ass new interfaces that require native support.
See my post for how.
Time for a new vocabulary to express the difference between wep-apps and web content, open and open-like.
Another otherwise intelligent person who doesn’t understand that open and free are not synonyms. By asserting that they are, you’re committing the very act you’re decrying here.
Enjoyable read regardless though. It made me think of a conference I attended last year where Molly H from Opera was going on and on about how the days of HTML as a document were over, and I kept thinking “Well gee, that’s going to surprise an awful lot of people who want to use the web to publish documents.”
Local web content and intranet web content are still “the web”. They use the same technology, the same linking behavior, the same browsers. They can’t be reached from an external address, but they are the dark matter that makes up 90% of the Universe.
The Cult of Open misses this point: The vast majority of software is engineered behind closed doors, and produces real benefits to real people. That it doesn’t match some religious ideology, that a nerd can’t read the source code to every app and use every tool without paying a license fee to the people who worked hard to create it, is totally irrelevant to real engineering.
For me the web is one big experimental platform, open to whatever people can invent.
Not something that’s meant to be codified and put in ideological boxes.
Your persuit of the one single truth scares me, to be honest. Historically this attitude has never advanced humanity in any way.
Regards, M
Steve Jobs never called H.264 “open.”
He called it an “industry standard.” There’s a difference.
There is a direction you haven’t really discussed. That is open data being used for proprietary applications. Many if not a majority of the iPhone apps merely take data that is readily available over “the web” and redisplay that in a proprietary application.
This is very similar to mail clients using POP, SMTP, and IMAP to display your email. For example, my email uses Google’s servers and I could easily use GMail to read my mail, but I prefer to use Apple’s Mail program.
What is amazing about this trend is that people are paying money for a proprietary iPhone app that is merely displaying the same information that they could get from the free “webapp” itself. That means people really see a value of an application specifically written for their device vs. a works everywhere approach.
To me, this is the way the world is really going. It’s not JavaScript, CSS3, etc. It is making data available in a format that anyone can read.
The problem with Flash is that is that it is heading the wrong way in two directions at once. In a world that is making data more available, Flash hides it inside a proprietary container.
Yet, at the same time, in a world where customers ware willing to pay for well written, yet proprietary applications that display the same data that’s freely available on various webpages, Flash attempts to be a write once/read anywhere framework.
Apple is against Flash because Apple simply doesn’t want to be dependent upon Adobe blessing whatever device Apple makes before it can be sold. ARM has complained that the delay in a ARM Flash client has hurt ARM based netbook sales (http://bit.ly/aCNTAL). Flash for Android has been delay for almost a year now. WebOS will probably never get a Flash client.
To that end, Apple is using its mobile webspace muscle to make Flash irrelevant. If you want your webpage to be viewable to iPad and iPhone customers, you have to get rid of Flash.
I am not sure what Google thinks of the whole thing. ChromeOS is suppose to run only webbased applications using the grabbag of HTML5 framework. The irony is that Apple originally tried the same trick on the iPhone. Jobs got up and proclaimed that you could write applications for the iPhone using HTML and JavaScript and got roundly booed. Six months later, Apple changed course and introduced the iPhone SDK.
Nice one Ben. Just one comment that sprang to mind as I am currently building what would qualify as a web app.
What makes most “web apps” not web-like is that they break the fundamental rules of the web and misuse technology. As you said, one can’t link into them.
And that’s where progressive enhancement normally helps. But not many people give a shit and are instead letting their magical pieces of javascript and other rich media handle stuff like simple POST and GET requests.
I’m using two cutting-edge awesome pieces of technology to build my app: links and forms. That means every single piece of content, even if it’s in what looks like a tab, a list or whatever visual element encapsulates it, has a URL. I can like into all the pieces of my app. It’s awesome: I’m close to having a fully functional 1.0 version and didn’t have to spend any time on quirky UI interactions, non-native usability matters and all the debugging that involves. I sure plan to add fancy javascriptness, but when it will make sense, when the foundations of the app are solid.
We’ve talked a lot about progressive enhancement a few years ago but I think it’s worth hammering it into the heads of the non-believers again and again. If you build for the web, to contribute to it, then use progressive enhancement. Understand that what you are outputting is a document, which can have links and forms in it. Have a go at using just that to start with and you’ll see it might be surprisingly hard enough to get right. But never will your app have a more solid base.
Otherwise you’re just mucking around with web related technology.
This is an excellent piece. I was fuming so hard after Joe’s tweet rant the other day that I could not form a coherent thought, and it turns out, I didn’t need to as you were doing it for me.
Gnash, Scaleform and SWFDec are NOT competing implementations. Gnash is still beta software after a few years of development, SWFDec is all but dead. To determine competing, I think you would have to perform a sort of Turing test on these players, can you tell those implementations apart from Adobe’s Flash Player? If you can tell the difference, they are not competing.
The other point is that there is no committee to which an outside party can submit changes to the Flash specification. You can lobby Adobe for changes, but they still control the specification.
Just to demonstrate my point above: at tis very moment my wife is unable to renew her professional registration because form buttons actually triggered javascript. Then the system keeps saying it’ll make her postal address public, even though she clearly ticks the “No” option. To top it up some bullshit alert popped up about “System.WebForms.BlahBlahMSBlahBlah”.
And that’s a regulated government website.
So yeah thanks Ben again for this post. Looks like we all still have a very long way to go to ….
Wouldn’t it suck if this brilliant article was hidden away in an unindexable Flash container? ;^)
It’s such a shame that SVG has become bundled up in the HTML 5 brand, because that’s the one crucial missing content standard – more so than video to me.
(Think of all the wasted effort creating bitmap images, and moving them around, due to the lack of good vector support)
I’d still disagree on whether H264 is ‘open’ – to me, it is, in the sense of the term used in the late 80s and into the 90s (i.e. the specification is public, and anyone may implement – provided they pay the piper). It’s not so different from USB or Firefire (or Ethernet – not sure if there are any patents still standing there).
The definition of ‘open’ as patent-free and royalty-free is a relatively new conception, and to a large degree I value practical standardisation.
Ben~
Awesome article, really great points made. It makes a good step in the right direction of objectivity when dealing with this issue. I don’t agree with everything but I certainly respect your view.
Browser detection really makes this issue a matter of the past. C’mon how long does it take us developers to whip together a page when we already have the content provided? LoL the hard part is getting the content.
Now coming from someone who works with Javascript libraries Ajax and jQuery, CSS, HTML5, and who has just done heavy research on WebGL, I have to admit I STILL feel LIMITED compared to developing in Flash AS3. I love the possibilities and it gives me endless amounts of creative control. You will see that Flash will be used to create content in HTML5 as well.
What we will see is this possibly. Actionscript 3 is fully open sourced and if it isn’t the web will slowly degrade back from Flash quality and probably make it back there in 5 or 10 years lol. Yea HTML will allow all those stupid animations and sounds and people will make those multimedia sites again.
The app store would not exist if it allowed Flash in the browser, (or Silverlight, Java, etc.)
Anyways, a buddy of mine recenlty made an awesome web app using ajax. It was stolen less than a week later (sorry Brandon.) With Flash you can protect what you make…
“most importantly the web is formed where all of that content is linked together. That is what makes it amazing, and that is what defines it.”
The term ‘web’ should not replace the term ‘public domain.’
My bank has made my bank account content available through both web browsers and desktop apps. If the app utilizes TCP/IP to transfer content over the internet, it is a ‘web’ app. If you want to think of the ‘web’ as content that is public and accessible to anyone, I guess it would be better to call my bank’s browser based app an ‘internet’ app… but in that case, IE , Firefox and Safari should be called ‘internet’ browsers not ‘web’ browsers.
The beauty of ‘The Web’ isn’t just that some but not all of the content is available to everyone who gets online. At a lower level, the beauty of the web is the infrastructure and API’s that are making it easier and easier for people to build and use applications that communicate information over an expanding distance (with or without the use of ‘web browsers’).
I really enjoyed this. It did occur to me towards the end that I don’t particularly see anything wrong with writing an app that only works on a particular browser (or browsers). I use different browsers for different things sometimes and I don’t see why that constitutes a bad practice or an inconvenience.
I do see it as a sacrifice you make, related to the sacrifice that Steve Jobs won’t make in letting too much hybridity into his platform. These issues are related but I think the sacrifice you make in writing a web app with some client-side desktop flavor is much smaller.
I suppose if WebOS gets popular and ends up being incompatible with the iPad I might end up eating those words.
You’ve articulated so precisely exactly what I feel about all this new “HTML5” bullshit.
Sure, there are certain things that work well in the context of the web, like Facebook. But things like 280 Slides make me sick. They are glorified hacks that will never approach the usability, speed, beauty or responsiveness of a real, native desktop application.
I agree that web technologies will never match desktop (or native) apps in quality. Sometimes this native level of quality is essential and other times it is not and deployability, openness, accessibility, and other web app qualities dominate. It’s a shame that selection of UI technologies is rarely based on a rational evaluation of these qualities. Instead the decision often comes down to the golden hammer you’ve used before or the fashionable up-and-comer that promises to solve the problems of its predecessors.
You know what, I will try to keep this short.
Given the length and scope of the video debate in ‘HTML5’, I am a little curious as to how the ogg format didn’t enter this. Given the facts that you presented… I think I can understand why, even without the massive flaming debate between the two formats… there is a great need for something to span the divide between what is becoming defacto and what truly abides to the standards at play in the internet.
I have said this before, lately it seems that those that bet against the internet, and the way that it’s designed, will do so at their own peril. The little spat between Apple and Adobe seems to highlight this… When you look at the arguments both companies present, both view seems to lead to a road that goes nowhere given the way that the internet is disigned currently. In a way, it almost makes me wish for the web to be something like the “Wild west” again.
That said, this is an eleant piece against all the nose around the HTML debates, WebOS and it’s future, Apple v.s. Adobe at the monent. And I welcome the new insight on the terms ‘open’ and ‘web’. For that Ben Ward, I thank you.
http://vimeo.com/10510576
I think this video would interest a lot of us here.
A brilliant read – good composition and well referenced. But I have to wonder if a lot of it makes any difference at all other than to a deskchair Internet philosopher.
As someone who does write a very involved “web application”, “the web” is a transport medium – nothing more. I embrace CSS, HTML, Javascript, PHP and PostgreSQL with the intention to deliver as close to a “desktop” experience as I can. I know we can never get there, but we can come close enough that the other things we can do because of “the web” overshadow the gloss of a native application. And that, to me, is what the true promise of “the web” is. To be able to allow people to work together from very disparate locations using desktops, laptops, mobile devices to connect to each other and share knowledge.
Absolutely not “open” because we’re talking about sensitive business intelligence, but if you’re in the group, the use of “the web” and “web standards” allows us to give you a very nice and useful “user experience”.
And we can update it instantly because we host all of the logic except the JS. So we like these “frameworks” like Scriptaculous that let us leverage “the web” and create something akin to a desktop experience where the latency is overshadowed by the benefits of ubiquitous networking and knowledge accessibility.
For us, the new “open” is being able to sit down at a standards-compliant browser anywhere in the world, log in, and do our work. We’re not interested in sharing our financial results with the world, so we’re not going to make them public-searchable.
Perhaps we’re redefining “the web” in a way that makes it lose meaning in a sense that’s important to a purist, but I submit that leveraging “the web” and “open source” tools to build systems that work everywhere is a very deeply important beneficial expansion of the original idea. Which is why I started working in that direction in 1996 and believe it even more strongly today.
With respect, I think you’re right that the meanings are changing, but I disagree that they’re becoming meaningless.
Very nice article. Sadly, almost nobody (normal people, you know, the kind that doesn’t read this kind of stuff) knows or understands what a URL is or how to copy it and paste it in an email (that’s why all those ‘send to a friend’ links on websites are so popular). And if you don’t know what you can do with a URL, then you don’t do it. So part of this connectivity is lost.
Or something… Time to go to bed. But very nice article. I think Tim Berners-Lee would be proud :) It would actually be interesting to see what he had to say about your article :)
And we can update it instantly because we host all of the logic except the JS. So we like these “frameworks” like Scriptaculous that let us leverage “the web” and create something akin to a desktop experience where the latency is overshadowed by the benefits of ubiquitous networking and knowledge accessibility.
Well said!
I think the initial intent of the web is often forgotten: for academics to share and interlink documents. That’s it. Over time we’ve added more functionality, but at its core it was built to share and relate simple textual information.
Most desktop-like web applications would be better served on a more appropriate platform. The main reason they succeed on the web is the ease of distribution to end users.
This is truly a wonderful article, clearing so much about the problems we’re facing. And you’r right in almost every aspect, except for one.
Web based applications WILL be part of the “web”, as you describe it and like I agree the web should be. And they will trough social media (something you completely missed in this article).
With the standardization and centralization of information by, in the end, (probably) Facebook and Google, even “locked away” content becomes “open” again, via services(sorry, some terminology can never be avoided).
“THE web” and “web-based applications” will, in my vision, continue to live side to side, but they will connect more and more. Silk threads will be woven from one to another, in your words. And it will be pretty, I promise;-)
Even, the accessibility of content that we in the past tented to hide behind login screens will become more accessible trough OAuth or whatever better alternatives are to show up. And browser specific applications can even keep their content accessible trough these same methods.
Parts of our community are getting frustrated (extremists in both in the Flash and in the html5 camp for example), and we should be very careful to expel certain possibilities of the web as part of it. If we want an open web, we’re going to need an open mind too.
We shouldn’t be too afraid of “wrong” products popping up, as if these could dirty our pretty web. We all know bad products won’t be used, and only the user can tell what a good product is. Ultimately, it will be that very user who will create the web of tomorrow. I say instead of attempting to “contribute to a better web”, try whatever you’d like to try, and LEARN.
Are you talking about Qt, the C++ toolkit? Well it looks awesome even on Mac OsX.
And there’s nothing stopping you from mixing Qt and native/platform-toolkits like Cocoa.
Time for a new vocabulary to express the difference between wep-apps and web content, open and open-like.
I think the initial intent of the web is often forgotten: for academics to share and interlink documents. That’s it. Over time we’ve added more functionality, but at its core it was built to share and relate simple textual information.