“We’re Going to Try To Make the Best Tools in the World for HTML5″

Kevin Lynch had a Q&A With Brady Forest today at Web 2.0 Expo and addressed a lot of topics including HTML5. As an Adobe employee, I’m kind of excited about what we’ll be able to do with HTML5. Who knows more about drawing APIs and interactive web content than Adobe? Now that HTML5 has started to coalesce a little bit, I think you’ll see us bring a lot of that knowledge to bear as we do build tools that target HTML5. You’ll see some of the early thoughts around that on our Design and Web blog so if you’re interested in that, I encourage you to subscribe.

; ;

But just as HTML5 evolves, Flash is going to evolve as well and there are a lot of cool plans for the next generation of the Flash Platform. I think it’s a pretty exciting time to be a web developer no matter which technology you choose.

Adobe Tools and HTML5/CSS3

Two of the people behind the products in Creative Suite have started a blog specifically about design and web technologies.

We have been spending a lot of time internally thinking about how our tools can best support and take advantage of some of the new functionality in HTML 5, and we wanted to share a couple of early ideas with you.

I’ve always thought that once HTML5 got a bit more concrete, you’d see design tools from Adobe that took advantage of it. The benefit of Flash is that we control the runtime and can tie features to the development cycle of our tools. Not the case with HTML5 and CSS3. But now that the standards have started to coalesce and have support in more browsers, we can make those features part of our design tools. Hopefully we’ll see a lot more of the examples above and I’d encourage you to keep an eye on the blog for info about design tools at Adobe and the web.

HTML5 Performance Tested Against Flash

ReadWriteWeb distills some results from a Streaming Media post about performance between Flash Player 10 and 10.1 and HTML5.

In analyzing the results of the tests, Ozer determined that the key to better Flash performance was dependent upon whether or not it could access hardware acceleration. This feature, launched in Flash 10.1, allows the plugin to use the graphics processing unit (GPU) on some computers to decode video. Depending on the video card and drivers, (NVIDIA, AMD/ATI and Intel offer products that support this), the video decoding process in Flash 10.1 can now work for all video playback, not just full-screen playback as was available in Flash 10.0.

The streaming media post has some good information about the method used to collect data and it seems like a pretty robust test. He used different machines and collected 29 data points for each test. So this isn’t some isolated test case.

But what I was most happy with was the performance of 10.1 across the board. The Flash Player team has been working their butts off to make Flash Player 10.1 scream and it looks like it’s paying off. The results show huge drops on Windows and good incremental improvements on the Mac. Mac isn’t on par with Windows but that’s because our engineers don’t have access to the same APIs that they do on Windows to get that boost from hardware acceleration.

I think Flash Player 10.1 is going to be a great release and I’m excited to see a leaner, meaner Flash Player get penetration.

Non-Accessible HTML

YouTube opens up captioning for all videos….sort of.

I know I work for Adobe, but this is the kind of thing that pisses me off. Flash gets such a bad rap from the open standards crowd who hold accessibility so highly but as of right now there isn’t any way to do captioning in HTML5 videos. So when YouTube makes a big announcement about improving and enhancing accessibility by adding captions to all of their videos, no one mentions that it’s just the Flash videos.

I realize that the HTML5 feature on YouTube is in beta, but it isn’t like this is something that anyone has figured out yet for HTML5 video. It’s listed as “unwritten documentation” on the Chromium site, which basically means “we aren’t sure how this is going to work”. But no one does. The closest thing I’ve found is a jQuery plugin that’s in the early stages.

Not only is there no clear codec for HTML5 (something that in theory Google will remedy with the purchase of On2) but captioning support, something that Flash has made easy and ubiquitous, isn’t a feature that’s looking like it will be implemented soon.

But it’s going to kill Flash….riiiiiiiight….

Stepping On Toes

Really?

There are other implications. By extending a hand to HTML5 Microsoft will move ahead adoption of the standard in a large way. The better HTML5 does, the worse Flash does, given their tendancy [sic] to step on each other’s toes at every turn.

By most accounts, I think HTML5 has never been better. Wider browser support, a lot of momentum. But the same can be said for Flash. Flash Player 10 was the most quickly adopted Flash Player version yet.

Maybe HTML5 and Flash aren’t stepping on each other’s toes as much as pushing everyone forward.

HTML and Flash Thoughts

Kevin Lynch blogged today in response to a number of issues that have cropped up recently and does a great job of laying out both Adobe’s vision for Flash and for web tools. That and a couple of other posts got me thinking a bit. The first is Jeffrey Zeldman’s post. He contrasts Flash with some of the benefits of standards. Most of the time I see “HTML5 is going to kill Flash!!” without any kind of rational conversation on why. Jeffrey does a better job than most. His intro paragraph is a perfect example:

Lack of Flash in the iPad (and before that, in the iPhone) is a win for accessible, standards-based design. Not because Flash is bad, but because the increasing popularity of devices that don’t support Flash is going to force recalcitrant web developers to build the semantic HTML layer first. Additional layers of Flash UX can then be optionally added in, just as, in proper, accessible, standards-based development, JavaScript UX enhancements are added only after we verify that the site works without them.

My Current Problems with Flash

There are a couple of things I hate about Flash inside the browser. Both of them were covered very well by Richard Leggett in his Flash/HTML5 post. The first is browser integration. One of the things I think a lot of users find annoying about Flash is that it feels so alien in the browser. We have basically a single API, ExternalInterface, that developers can use to connect HTML and Flash. But it’s very awkward and it makes both the development experience and end user experience feel very different. Flash has become the “black box” of the browser. If you take a look at AIR, you see how great those two worlds can be. Flash and JavaScript can call each other’s APIs, Flash can access the DOM, and JavaScript can call Flash only when it needs to, for things like playing sound or performing graphical tricks. SVG and Canvas add a layer of complexity to that, but I don’t think that’s an insurmountable hurdle. In fact, I think those two technologies, when combined with Flash, would make a very interesting combination.

But that leads to the other problem. Flash is horrible when it comes to the semantic web. And this causes some other issues, like deep-linking or search engine optimization that we’ve worked on, but haven’t perfected yet. As Richard says, and Jeffrey notes, the current solutions aren’t entirely bad. Flash works very well with a CMS like Drupal so that you can have the semantic web layer and a Flash layer. And largely it depends on your project. In some cases that semantic layer isn’t going to be as important. It’s also important for developers to use Flash inside HTML where appropriate. Another thing I’d like to see is making it easier to create Flex applications that don’t take up the whole page, but work within an HTML context. Think a bit about what I said above combined with some kind of Dreamweaver/Flash Builder integration so that the developer can unify the HTML and Flash experience at a tooling level.

Adobe Is a Web Tools Company

People seem to think that Adobe has eschewed HTML5 in favor of Flash. A lot of innovation goes into Flash. We have a number of features that our customers want and we’re able to add those to the runtime and create tooling around them because we can move quickly and innovate. HTML5 is obviously more consensus driven. As a result, some of the details that would be required to add tooling support haven’t been fully nailed down yet. But we’ve moved ahead to do what we can. Dreamweaver continues to have great HTML and JavaScript framework support. We’ve shown sneaks of BrowserLab that will help HTML/JS developers see how their site looks in various browsers. We’ve included the latest versions of WebKit in Adobe AIR so that HTML developers can take advantage of a lot of HTML5 features in a desktop context, and in ColdFusion we’ve got support for creating ExtJS 3.0 components with ColdFusion tags. We even sneaked a feature at MAX that used Flash and Illustrator to display animated vector content using the canvas tag. So Adobe is supporting HTML5 in a number of different ways already and experimenting with even more. When the spec is nailed down, you’re going to see a lot of Adobe tools that support it.

Flash Is Driven By Customers

It’s important to remember that Flash isn’t some isolated plug-in that we maliciously deployed on 98% of web browsers and that consistently hits 80% penetration for new versions in 6 months. Flash is driven by customers. Both developers and end users. Developers still want content that runs the same way across browsers (and now devices). They still want web content that provides innovation around things like video, sockets, animation, data push, web camera, 3D transformations, and works across multiple platforms and 98% of the people on the web. There are some developers who won’t ever use Flash, and that’s fine. There are others who want to do things that HTML5 just doesn’t have an option for now. Flash is there to fill that gap. Part of the reason we can innovate with Flash is because we control the source code. While we’ve worked hard to be more open, ultimately it’s our customers demand for innovation that drives us. And I wouldn’t want Flash to open up and lose that ability to innovate. It wouldn’t be fair to our customers.

I’d love to see Flash do a better job of integrating with the browser and the semantic web. And I hope HTML5 pushes us more in that direction. I disagree that the era of plug-ins is coming to a close because I think there will always be web developers who want to do a little bit more and have the same experience across devices and platforms. Adobe can move at that speed while still offering tools for web developers of all stripes because both HTML and Flash are baked into our DNA. I genuinely wish for a more open dialogue between standards organizations and the Flash community. Unfortunately it seems like a “my way or the highway” attitude when it comes to web standards. I can understand that to some degree, but I think the web would be a much better place of everyone took a deep breath and took another look at Flash’s deficiencies and its strengths. With that as a starting point, I think there could be some very valuable conversations about how Flash can do more to support standards while still catering to customers who want new features.

On Google, YouTube, HTML5, Adobe, and Flash

Last night Google blogged about how they were experimenting with offering some videos on YouTube that support the HTML5 video tag and the H.264 codec, and that work in Chrome and Safari. This is part of TestTube, where YouTube’s engineers test out different products without rolling them into the main YouTube experience. YouTube and Flash obviously have a deep relationship. It was Flash that helped YouTube become one of the most visited sites on the Internet, and YouTube has helped increase penetration of newer versions of Flash Player by rolling out features, like H.264 support, that required the newer Flash Player versions.

There is always an undercurrent questioning if Flash is “going away” when it comes to HTML5. But I think YouTube is actually the perfect example of Flash and HTML working together. The same day Google blogged about the TestTube project, YouTube also rolled out a new rental service for some of the Sundance Film Festival videos, which is powered by Flash. And I think that shows the relationship that Flash and services like YouTube have in helping drive the web forward.

Video on the web isn’t just about watching a clip any more. There are ways to monetize it, either with advertising or by adding ways to protect content that lets people watch something after they pay. There are accessibility issues that need to be addressed like closed-captioning support. What about being able to consume video on mobile devices that don’t support the HTML5 video tag? These are all areas that Flash has found solutions to, which has helped the growth of video on the web and provided a reference for the HTML5 groups to see what works. And while there may be some arguments over the use of the H.264 codec, having Flash add support for that codec meant that companies like Google could roll out a Flash version and an HTML5 version without having to re-encode video. Flash has made possible many of the features in HTML5 by showing how good the experience can be. And Flash will continue to innovate and provide solutions to challenges on the web before those solutions can be standardized. It will remain the best way to provide cutting-edge technology to 98% of people online.

Open standards are incredibly important to the future of the web. Adobe continues to work hard to contribute to that movement and balance that with the need for our customers and developers to be able to create next-generation content that runs the same way on every operating system and device. If Flash wasn’t providing value to people, it wouldn’t be on 98% of the world’s computers and we wouldn’t see penetration for new versions reach 80% within 6 months of release.

So congrats to YouTube on the HTML5 video work. This is good for HTML and I think there will be a lot of Adobe, Flash, and HTML5 collaboration moving forward. Flash has an important role to play by providing innovative ideas and solutions for an increasingly multi-screen and multi-platform world.

HTML5 Versus Flash Versions

Serge has a great post on Adobe and the open web. I don’t think Adobe gets enough credit for contributing to the open web. That takes a couple of approaches. One is, as Serge said, we participate in a lot of open source and open web initiatives. But we also spend a lot of time and money investing in the web and solving problems that we come across. Cross-domain support is a perfect example. It was a problem we saw coming long before Ajax and we created a solution in the Flash Player to support cross domain requests. I ran down some of the new APIs and changes between HTML5 and HTML4 according to Wikipedia and compared them to what we have in Flash and when we added it.

Not all of this is 100% accurate but it’s the best guess I have at 2:00 AM. I’ll update it as I get new info.

HTML5 Flash Version
Canvas Tag (2D Drawing and Animation) FutureSplash (Flash Player 1)
Video/Audio Support Flash 2 (Audio) Flash 6 (Video)
Offline Storage Database No real offline storage in Flash Player, Adobe AIR added it in version 1
Drag-and-drop Supported in ActionScript 1(Flash Player 5)
Cross-Document Messaging Cross-Domain support in Flash Player 7
MIME type and protocol handler registration I don’t think there is anything analogous to this in Flash.
New parsing rules N/A
New elements such as progress, nav, time, etc Largely covered with ActionScript 2 (Flash Player 7)
New form controls (dates, times, email, url) Shipped with Flash authoring (Flash Player 3/4)

Is the Pretense of the Open Web Gone?

This is interesting. Mozilla is looking at a way to bring accelerated 3D to the web. Christopher Blizzard has more information on his blog and a couple of good quotes:

We’ve started to see more and more libraries being built to support use cases with Canvas in a 2D context but we really want to take things to the next level and start to allow people to use 3D capabilities as well. Accelerated 3D graphics with the super-fast next-generation JavaScript engines from nearly every web browser vendor means that we’re going to be able to start to see more and more advanced applications written using open web technologies. 3D is a huge part of that story and we’re happy to bring our proposal to the table.

As an Adobe employee, though a big supporter of Flash, I also wish we did more to encourage and foster the open web. The problem is that the standards process is completely broken. You simply can’t innovate that way and it looks like the browser vendors themselves are at the point where they’re pushing their own various priorities and standards so they don’t get left behind. The unfortunate thing is that the standards are what really make the open web open. Sure, you can open source something and claim it’s open, but it’s the standards that give everyone a reference implementation. It’s the standards that aim to level the playing field and make developers lives easier. It’s the standards that keep the open web open.

Probably a hilarious thought coming from a guy who makes his living off of Flash, but I’ve always been of the opinion that we as a company should roll our innovations back into the HTML world. The problem is that even if we did that, we’d have to work within the constraints of the committees, so the open web would always lag behind Flash and in some cases possibly never adopt the better parts of the platform. To me, that’s fine, Flash will always have a place on the web, and Adobe makes some great tools for open web designers and developers. I always thought it was win-win.

So it’s unfortunate to see that even the browser vendors have given up on moving the open web forward through standards. Whether it’s the WHATWG versus the W3C or the trials and tribulations of actually implementing HTML5, things are very broken and everyone is moving on regardless. I don’t blame any of them, but it doesn’t seem like it’s good for web developers.