Tag Archives: flash

Ryan, Open Source, and Flash

A few weeks back, I had dinner in Seattle with Ryan Stewart and Brian Zug. Over the course of several hours we covered a number of topics, including a crash course in open source software. Yesterday Ryan posted some of what he learned during our conversation, including his conclusions about whether or not open sourcing the Flash Player was a good idea. That post generated a bunch of traffic, so Ryan put up a follow up post on his personal blog.

Unfortunately, many people reading Ryan’s post or one of the aggregated excerpts didn’t have the context which prompted the dinner and the posts. All of this took place in the context of three blog posts which I wrote last month where I took a look at Adobe’s Flex/Apollo technology from the point of view of the openness of the technology. I’m interested in Flash only as a component of Flex. I’m not interested in singing/dancing web pages or in Flash based ads, but much of the reaction to Ryan’s post was centered around traditional uses of Flash in web pages. Many people said “oh, open sourcing it will destroy compatibility”. Yet the context of the discussion included ways of maintaining compatibility.

The most interesting response that I found was from Ted Patrick at Adobe. Ted shed some light on the ways that Adobe/Macromedia have involved customers in the development of previous versions of the Flash Player. This was useful information to have — I think that I was probably more ignorant of these facts than Ryan was, truth be told – and suggests to me that there is some culture of working with people outside of Adobe/Macromedia. Perhaps most encouraging was his acknowledgment that Adobe could be more open. Of course that’s not a commitment to be more open, and indeed, he warns that becoming more open will not happen overnight. I am not expecting something to happen overnight — after all, I’ve waited 9 years for Java, and am still waiting. The wheels do have to start turning sometime, though.

Following up on “The Microsoft of the Web”

My post “Adobe wants to be the Microsoft of the Web” attracted enough feedback that I think it’s worth a follow up.

I’m going to begin by trying to clarify two aspects of what I said in the post, and then try to treat blog posts and comments in light of those clarifications.

What do I mean by the Microsoft of the Web?

When I say this, I mean that a single company determines the direction of a technology. Input from other parties might be considered but the company has the final say. I don’t mean this to be a comment on avariciousness of the company, or about the use of monopolistic business practices. It is a statement about having a huge degree of control over an important technology area, not the manner in which control was obtained.

The Flex/Flash stack has many things going for it. Very broad distribution. Users who are somewhat accustomed to upgrading the Flash plugin. Excellent development tools. This gives the stack a powerful position in the market and a good launching point to gain an even stronger position in the new RIA space. There actually is an RIA space, and the problems of incompatible multi-vendor technology in the HTML/CSS/Javascript stack are real and bigger than the problems of plugin version detection and upgrade. OpenLazslo is the only other competitor on my radar, and they have a very good technology, but businesswise they are at a disadvantage when stacked up against Adobe name recognition, tooling, marketing etc. Because the Flex tools story is so compelling to so many developers, they are going to choose Flex. So unless something else happens, when the web is RIAs (which I think is the direction) Flex will be the web, and thus Adobe will be in a Microsoft like dominant position.

What are the properties of a sufficiently open technology?

I don’t think that all software must be free or open source. I don’t begrudge companies who want to charge money for software. I do think that the many properties of the “open source” model result in big benefits to certain classes of technologies, and things like RIA foundations for the web fall into that category. My thinking on this has been shaped by my participation in the Apache Software Foundation, and by books like Democratizing Innovation, The Future of Work, The Success of Open Source, and Benkler’s paper “Coase’s Penguin” (I want to include “The Wealth of Networks” here, but I’m stuck at page 272). In short, Democratizing Innovation is the goal.

  • Interested parties willing to make actual contributions an empowered seat in determining the future of the technology. Let’s break this down. “Interested parties” — anybody who is interested. Corporations or Individuals. “Willing to make actual contributions” – People hanging out throwing rocks but not providing proposals and/or code don’t count. “Empowered seat” – being at the table means having a vote, and not having to pony up money to participate, unlike, say, the W3C. Votes not being overridable at the whim of a single person, unlike, say, JCP 2.6. “determining the future of the technology” – this should be self evident. I am not saying this will be easy. Sun has yet to define the governance model for OpenJDK, and how they handle the governance issue will be of huge importance.
  • Compatibility is important – a significant part of the value (to me) of the Flash/Flex stack is portability/compatibility. It is self defeating to allow compatibility to go out the window. Properly handled, I think that compatibility suites of some kind coupled with trademark usage could go a long way here. Also, distribution of the Flash plugin has a huge impact on compatibility. While people can and do download plugin upgrades, it is also the case that the plugin that gets included in the browsers has a significant advantage, in the same way as the browser that is bundled in the operating system. Adobe already has that relationship with the browser folks. If they were to steward an opened Flash/Flex responsibly, I would think that relationship would be secure.
  • Availability of source code enables parties working on an open technology to collaborate whenever possible, including bugfixes and enhancements. It allows an interested party to show up with a working prototype for a new feature rather than just a paper design, for example. Because of the way that open source and free software have been defined, people think that it’s all about the licensing and availability of source. But all that stuff is just a facilitator for the collaboration. But more on that in a forthcoming post.

Elsewhere in the blogosphere

Ryan Stewart doesn’t want an open source Flash because he is concerned about compatibility. Just because Flash opens up doesn’t not guarantee that it will fragment into a billion versions, or even 5 (existing versions notwithstanding). The value of Flash is in the cross platform compatibility. If people are stupid enough to try gratuitous forking, they are not going to get adopted. This is what Sun has always been afraid of with Java, and I am happy to see that they finally got over it. When the value of your technology is portability/compatibility, the will be very strong pressure to remain compatible. Not only that, there is the distribution issue that I mentioned above.

Andrew Shebanow had several issues:

  • He took issue with the “sensationalistic title” — the title came as a direct quote of something I said in the Twitter backchannel, and I hope the paragraphs above on the meaning of “The Microsoft of the Web” expose more of the reasoning behind the statement.
  • He invokes “the web will route around ‘bad’ players” as an argument for why this will not happen. Perhaps the web will route around. Then again, people could have routed around Windows by buying Macintoshes. It’s a lot harder to route around when your business critical application has already been built.
  • He makes an emotional argument about the ethicality of Adobe, which I wouldn’t presume to dispute. Yet, corporations must answer to their shareholders demands for profits, and I think that the path I outlined about doesn’t require Adobe to be avaricious or have monopolistic tendencies. The only thing stopping it is whether the Flex adoption curve hits an inflection point. Which it hasn’t yet – otherwise I wouldn’t have bothered to post.

Jay Pullor, one of the founders of Pramati, posted about Dekoh, ther Java based RIA technology. I have to confess to a large degree of skepticism regarding Java based RIA technology, mostly due to the Java plugin distribution problem. Yes, I know there is Java Web Start, but my personal experience with Web Start based apps has been hit or miss and disappointing. There’s also the process/governance issues, which his post didn’t address.

The comments

Via the comments I found James Ward’s piece “How I overcame my fear of flash” from a few weeks ago. He basically admits that he is hoping Adobe will do the right thing on the openness front. I’m pointing out that hoping may just be that, due to all the forces in play around the technology and in the market. This is too important to me to leave to hope.

David Temkin from LazsloSystems weighed in on some of my comments about OpenLazslo. He pointed out that:

  • OpenLazslo does have an open public process for defining things like APIs, and that the process is open to non Laszlo contributors
  • Lazslo Systems has hired a community manager to accelerate the development of a community around OpenLazslo
  • He agreed that their community is at a very early stage, which means that there hasn’t been a lot of testing of the public process

(Disclosure: David is an old friend, and I have been a fan of the OpenLazslo technology for some time. I would really like to see them get a chance to compete in the marketplace of ideas for the RIA space.)

John Dowdell and David ? from Adobe also responded in the comments, and I was very pleased that they wanted to engage in conversation around the post. John was trying to suss out what my real requirements were for opennes around the Flash file format. I hope that the second section above provides the insight that he was looking for. (if not, there’s always the comments again). David provided some additional facts about the openness of various parts of Flex and the Flex dev tools. I think his position is that the only part of Flex that isn’t open source is the Flex framework (which sits on top of ECMAScript). The framework ships with source, and apparently, the licensing allows modification and integration. I think that a full story includes both Flash and Flex, since Flash is subsumed into the Flex story. In regard to the Flex framework David said:

Now, all of that said, we haven’t open sourced the Flex framework itself, just the underlying engine it runs on. We haven’t standardized the Flex framework, but we have standardized the language it in (in addition to ECMAScript, we leverage CSS). Given all this, how important is it to you that we open source the framework itself? What would this change for you?

Again, I would point to the second section above, which describes my conception of an appropriately open environment, but which goes beyond some people’s notion’s of open source (although no-one else involved with Apache would be surprised by my list, with the possible exception of the compatibility stuff). What it would change for me is that it would give me the assurance that your “good behavior” regarding Flex wouldn’t suddenly change when there was a management or other change at Adobe. It would demonstrate your trust and regard for a decently sized community of people that feel these issues are important, and who would reward that demonstration of trust with the fruits of their intellects.

There were a few other comments/trackbacks which I plan to address in the comments or in additional posts.

Summation

I see two leading contenders for RIA foundation technologies. OpenLazslo and Flex/Flash/Apollo. OpenLazslo is the underdog, with a really good technology and the basics of a good governance system, but with a fledgling community. Adobe has the advantage as the bigger player, with deeper pockets, more recognition, a better tools story, but no real story on governance/openness. Some components of Flex are source available, but as I mentioned above, source availability is an enabler, not the end goal.

Adobe wants to be the Microsoft of the Web

I suppose this will be the one “technical” post about the whole Adobe Engage thing.

Background
For several years, I worked on Chandler, a cross platform desktop app which uses the open source wxWidgets toolkit to hide platform differences from an application. I am currently managing the Cosmo engineering team, which is developing a web UI for Chandler data which is stored in the Cosmo server. In a previous life, during 2000, I built a rich internet app (RIA) using Flash and Java.

The problem as I see it
I think that a lot (but not all) apps will become RIA’s, and the base platform technology for RIA’s is very important. Too important to be controlled, or designed by any single party. The current vogue toolchain, AJAX, has this property. It also has the property of being a cross platform development nightmare. On the desktop, you commit yourself to a single cross platform library/technology, and then you spend the rest of your time wrestling with it. In AJAX, you have multiple browsers on each platform that you want to support. Not only that, you have multiple versions of each browser. If your use of AJAX is limited to simple animation and so forth, that’s not that big a deal. But when you want to build something that has rich interaction, all those versions are a compatibility nightmare. There are also the performance problems with Javascript. Firefox partisans will be shouting “Tamarin“. Only problem with Tamarin is that it doesn’t help IE or Safari or any other browser. So much for platform independence.

Flash/Flex
Enter Flash/Flex. Flash has a great cross platform story. One runtime, any platform. Penetration of the Flash Player is basically the same as penetration of browsers capable of supporting big AJAX apps. There are nice development tools. This is highly appealing.

What is not appealing is going back to a technology which is single sourced and controlled by a single vendor. If web applications liberated us from the domination of a single company on the desktop, why would we be eager to be dominated by a different company on the web? Yet, this is what Adobe would have us do, as would the many who are (understandably, along some dimensions, anyway) excited about Flex? Read Anne Zelenka’s post on Open Flash if you don’t think that Flash has an openness problem. I’m not eager to go from being beholden to Microsoft to being beholden to Adobe.

What to do?
Unfortunately, there don’t really seem to be many alternatives. There’s OpenLaszlo, but much as I like the Laszlo folks, perusing the mailing lists shows that it’s still pretty much a Laszlo show. So while the licensing is better, the community development part doesn’t seem to be much better. There’s also the possibility of Adobe having a change of heart regarding the openness of Flash and Flex. But it’s hard for me to see why they would do that. I guess we can only hope that Adobe’s experience with Tamarind warms it to the benefits of a more open model for the future of Flash. Sun has finally woken up, so maybe it’s not impossible for Adobe to either.

[Update: see my followup]