The Web, Documented

Every great software platform needs some essential ingredients: one or more programming languages, great tools such as editors, compilers and debuggers, frameworks and libraries that make things easier, an enthusiastic community that help each other out and good documentation that helps get the most of the platform. The web platform is probably the biggest, fastest growing and most ubiquitous platform in the (short) history of computing. And while it has many of these essential elements, there is one that was still lacking: official documentation.

Think about what you do when you have a question about HTML, CSS or JavaScript. There are probably a few sites you trust, a few printed books you keep close at hand, if you’re old-fashioned, but more times than not you just search what’s out there and see what comes up. It could be a well maintained, up to date, credible source, or it could be articles or blog posts that are out of date or just plain wrong.

And the web platform is not static! The browsers keep evolving and implement new functionality, specs keep getting updated, and new specs get proposed and implemented. Best practices evolve as well.

Since there’s no single, definitive resource to go to, there’s no way to know for sure, except through trial and error.

All of that is changing today. The W3C – in collaboration with Adobe, Apple, Facebook, Google, HP, Microsoft, Mozilla, Nokia, and Opera – is announcing the alpha release of Web Platform Docs, a new web destination that will become the definitive resource for all open web technologies. You can find the W3C press release here. The Web Platform Documentation (WPD) will include:

  • API documentation
  • Information on browser compatibility
  • Examples
  • Status of specifications

And the WPD project will be open and community driven, just like the web. WPD is built on top of MediaWiki, the same engine that powers Wikipedia — which means that anyone can contribute. The initial content is being provided by many of the stewards listed above, but anyone with knowledge, examples, snippets or other relevant information is welcomed and encouraged to contribute.

The stewards have been working incredibly hard on this project for a bit over a year, and I want to congratulate them on the launch today. We are very proud to be participating in this effort. This is the culmination of the effort to build this infrastructure, but in many ways this is also a first step. It is now up to the web community to help create and maintain the most comprehensive and authoritative reference for web technologies. So, go check it out and start contributing. Document the web!

Flash and Standards Cold War

Very good perspective on Flash and standards.

Both the standards community and the Flash community are extremely good at sharing knowledge and supporting the people within their respective groups. The relationship across communities, however, isn’t nearly as cordial. Two things are happening: either the people within each camp stay to themselves, or one ignorantly hurls insults at the other.

I love that angle. Both camps have very passionate communities but the problem is that there’s not enough cross-pollination between groups. Part of that is that (I don’t think) Flash has done a good job of playing well with HTML. It has been and still is largely a black box. So at a technical level the two technologies don’t work as well as they should have. That carries over into the communities. As a company that makes tools for both HTML and Flash, it behooves us to be involved in both sides of the debate. My hope is that as Flash opens up more and hopefully works better with HTML, the people on both sides will start to work more closely as well.

HTML5 Can’t Exist Without the Flash Platform

Let me start by saying I’m not anti-HTML5. I think it’s great. I think open standards are core to the DNA of the web and that’s part of the reason I’ve been encouraged that Adobe is moving more in that direction with AMF, RTMP, and some of our underlying protocols. But I also don’t think that means there is no room for companies like Adobe and Microsoft that want to see the web be better. I don’t think it’s an issue of corporate greed or vendor lock-in, but I understand the economics of how those end up being profitable. On the Adobe side I think it’s just that we have a lot of services and tools that we want to provide and we need a platform we can innovate quickly on. When the winds of technology shift we want to be able to make sure our customers can stay ahead. Video? RIAs? Real-time collaboration? Enterprise data management? All things our customers needed that we could build into the platform and make available to them. With the way open standards work it’s just not feasible to push those innovations through. So we’ve been very careful with the Flash Player. That’s how we provide our customers value. But it goes beyond features and into another problem with the web: a consistent experience. From browser to browser you’re going to get wildly different implementations of a “standard”. With Flash Player you can deploy your content and know it will run the same way for everyone that has Flash regardless of browser or operating system. There was an example today that made me chuckle and write this post. It’s not the best example; blurs and sparkly trails are not necessarily ideal uses of Flash, but in this context it was important. They wanted to capture a specific experience, it added value to the overall presentation, and was worth taking the time to create. Here’s the email:

Hey all-

My 20% at Google is the NORAD Santa Tracker, which gazillions of adults and kiddies use each year to track the progress of Santa across the world.

Last year, I used our Flash API to create the tracker map, primarily so that I could make a glittery comet trail of Santa’s past 7 stops. I tried it in JS with resized animated GIFs, and then decided that Flash would be much less painful – and was right. The code drew a line on a Sprite, blurred the line, then added some little sparkle movies and animated them.

You can see a screenshot with some trail here: http://www.wired.com/images_blogs/photos/uncategorized/2008/12/24/santa_nrad_edited.jpg

This year, I have ported the map to our JS v3 API, because we are doing aversion that utilizes the Earth plug-in (3d flying Santa!), and I wanted to make sure there was a version that didn’t require a plug-in. But, I really miss the glittery comet trail.

I wanted to get your advice on the best way to do this in JavaScript, given the following (flexible) requirements:
- Works in FF3, Chrome/Safari, IE 7+.
- Doesn’t require images (bandwidth is an issue).
- Doesn’t require a plugin

I’ve contemplated canvas, but not sure if that supports foreground blurring,and don’t know if it would translate to VML with excanvas. It doesn’t seem very SVG-y. I could try animated GIFs again, but they don’t animate the same across browsers. I could also try window.setTimeout with some PNGs, but that will slow down the browser, require images, and won’t achieve the same blurred line effect.

Do any of you have a better idea? (Help prove to me and the kiddies that Open Web can make magic happen! :)

Thanks!

- PamElf (<- my elf code name)

Not an off the wall request by any means. It’s a pretty basic task and using open standards in this case is a great way to go. Especially considering that she’d like mobile support for this (later email) and HTML is still the best way to target every level of device. What surprised me was the responses:

From: Jeff Schiller

My two cents:

SVG Web does support the blur filter so you could get this working cross browser if you force the flash renderer.

If you just forced the flash renderer for IE, that doesn’t solve the problem of Chrome/Safari who have not turned on their SVG Filter support.

SVG Web is a cool project to support SVG, but a requirement is that you have to use Flash. So even when you try to use open standards, you still have to fall back to Flash in some cases.

From: Dion Almaer

A hack would be to have a separate <canvas> that draws the blur w/ an opacity and z it? :)

Seems like a decent solution, but requires some hacks. This is fine for a 20% project, but when you’re trying to be productive, are hacky solutions the best way to go?

From: Alex Russell

How ’bouts IE 7+ with GCF? That’d let you try things like <canvas> more directly.

A perfectly fine way to do it, but GCF is the Google Chrome Frame plug-in, which would mean another plugin and as Pamela says the message after that, it’s not ideal at all from an end-user case.

Now I understand that the major roadblock here is the IE 7 requirement. If it wasn’t for that you wouldn’t need the Flash fallback for SVG Web and you wouldn’t need to use something like the Chrome Frame plug-in to make it work. But that’s kind of the point of open standards. Before you can really take advantage of a technology you need to get a consensus from everyone. All of the browser vendors have different agendas and different priorities. Right now Microsoft is the hold-out, but what happens if something comes along and threatens another browser vendor’s goals? Then they’ll be the hold out. That’s part of the price you pay for standards; you have to get everyone on the same page before you can move forward.

In the end, that’s better for everyone. Once everyone gets moving in the same direction, that becomes the baseline, and the web is a better place. We’re seeing that start to happen with HTML5. And despite the “Flash is dead” rhetoric, HTML5 will be a good thing for the web. Things like playing basic video and doing animation/vector graphics are so simple and yet so integral to the web experience that they should have been done in an open standards way a long time ago. But if Flash didn’t exist those things wouldn’t have become as important as they did as quickly as they did. And even now, as the web tries to move forward, Flash is being used as the fallback so that the web can evolve even if not everyone in the group buys in.

To me, that says that Flash will always have value. We control the platform so we can keep innovating and pushing the web forward in our own way. Maybe that’s content protected video, maybe it’s P2P support, maybe it’s a binary transfer protocol, maybe it’s hardware acceleration, maybe it’s writing your own filters and blend modes, and maybe it’s real-time collaboration. Eventually, the open web will incorporate all of those things. But I still wish there was more cooperation between the companies who have technology core to the web and the open standards groups who create the future of the open web. If nothing else, the open standards organizations can see what features stick and which don’t so that you don’t waste valuable time trying to standardize something users don’t want.

In the end, everyone wins. Flash won’t die, Flash developers can still be on the cutting edge, and Adobe will continue to support designers and developers on both sides of the open web/Flash spectrum. We’re all part of the web ecosystem in our own ways. Just like any ecological system, if one side goes extinct, the other is going to suffer.