Category Archives: internet

Adobe open sources Flex

Last week while I was in San Francisco, I sat down for an hour with David Wadhwani, the VP of product development for Flex and Ely Greenfield, one of the Flex architects. After I wrote my original post about open sourcing Flash, I got a note from David asking if I would be willing to spend some time to help him understand the issues that I raised in that post and its follow ons. This afternoon David called to tell me that Adobe was announcing that it was open sourcing Flex v3. I was especially happy when he said that my posts and our conversation had an impact on his thinking about open source and Flex. There is a press release with the announcement as well as a FAQ on the basics.

The Basics
The basics of the announcement are that Adobe will open source Flex v3, due later this year, under the Mozilla Public License (MPL), which is sensible given that they have already open sourced their Tamarin Javascript engine via Mozilla. Before that happens, Adobe will make daily builds of Flex available (the source is already available, but daily builds gives better visibility). Also, they will open their bug tracker to the public in preparation for the open source version of Flex.

Adobe is taking a slow approach on governance. Unsurprisingly, the initial set of committers will be folks from Adobe, and the governance model is underspecified. Right now, the FAQ says that the schedule and roadmap for Flex will continue to be defined by Adobe. There are stated plans to create a subproject process and subprojects could be managed by people outside Adobe, and incorporated into the Flex tree. The full governance model is not yet determined, and will be influenced by feedback and what actually happens between now and the end of 2007, which is the target for the transition to being a full open source project.

I think that there are likely to be some concerns around use of the Flex trademark. Unlike Java, where (in theory anyway) an open source Java could pass a compatibility test suite and gain access to the trademark, the open source version of Flex cannot be called Flex. It remains to be seen whether this will actually impact participation in the project.

Flex, but Not Flash
This is a good first step for Adobe, but it’s just the first step. The Flash player is not being open sourced at this time, but when I talked with David he told me that that Adobe had been telegraphing the fact that they were going to open source Flex for about 20 months, since the opening of Adobe Labs. When I asked him about the Flash player, he said that open sourcing Flex should be viewed as a telegraphing of Adobe’s intentions. Of course, there’s a big difference between intentions and actual followthrough, so we’ll have to wait and see how the Flex project ends up working out.

Bottom Line
Adobe is moving pretty quickly. When I met with David a week and a half ago, I got the impression that he and Ely had decided that they wanted to open source Flex, but hadn’t cleared it with his management chain. A week and a half later, they are making an announcement. As I’ve mentioned, this is just a first step for Adobe, and there are plenty of opportunities for things to go sideways. Nonetheless, I think that Adobe has understood the importance of openness and is taking some initial exploratory steps to do what’s necessary.

If you think that an open source Flex is important, then you should go to the new discussion forum that Adobe is setting up for open source Flex. There are a lot of things which are intentionally unspecified, and there is still lots of time to give Adobe feedback on this move. I know that I’m going to keep giving them feedback for as long as they continue to solicit it.

Update:
Scoble has a video interview that lets you hear some of what I’ve heard from David and Ely.

The Open Web, the Closed Web and the Live Web

So back in March, Brendan Eich of Mozilla wrote post titled “The Open Web and its Adversaries“. His definition of open seems to rest on this:

a web whose major content formats are not controlled by a single vendor

A goal which I agree with, and the basis for my series of Flex posts, which he also referenced. So far, so good. As he continued, I got confused. He asks us to:

Consider just the open standards that make up the major web content languages: HTML, CSS, DOM, JS. These mix in powerful ways that do not have correspondences in something like a Flash SWF.

I agree with his assessment of the powerful ways in which these technologies combine. But much of what he finds laudable are technical properties — they don’t derive from the fact that these are open standards. It’s just a fortunate (or perhaps, designed) outcome that those are the technologies that are combined in a browser. After all Java, C#, and even C++ have been standardized (well at least if you believe that the JCP is standards body), so being an open standard technology is not a guarantee that you’ll have the properties that make the web “alive” according to Brendan. It seemed like what was really being discussed was the “live web”, not the “open web”.

The place where I really got lost was when he started discussing the future of the open web,

Implicit in my writing is the assumption (conclusion, really) that browsers can adopt the necessary advanced rendering and faster virtual-machine programming language support that the “rich client platforms” boast (or promise in version 2.0). … There’s no technical reason this can’t be interoperably supported by other browsers in the near term.

There’s no technical reason, but there are plenty of political/business reasons. Every browser implements each of the open standards to a varying degree. They implement different versions of the specs. They implement each spec imperfectly. That translates into lots of debugging and testing when building an application atop the open web. I like the improvements that are likely to come in Firefox. The problem is that until many of those improvements appear (if ever) in Safari and IE, it will be hard to justify using those improvements, because it means writing multiple versions of the same code and then qualifying those versions. Contrary to Brendan’s assertion, big companies with armies of developers might have the resources to devote to all that additional work, but small development houses are the least able to tolerate that additional labor. Since Microsoft has an interest in advancing WPF/E, part of the Closed web, it’s hard to imagine that they will be motivated to improve IE quickly enough for innovative Live web features in Firefox and Safari to make a difference to application developers versus something like WPF/E or Flex. The risk to Microsoft is that instead of collecting those developers themselves, they lose them to Adobe.

Everything is dead, except Apple and the Web

Or so it would seem.

A few weeks back, Dare Obasanjo said “Open Source is Dead“. The crux of his argument:

This is why Open Source is dead, as it will cease to be relevant in a world where most consumers of software actually use services as opposed to installing and maintaining software that is “distributed” to them.

If the only valuable property of open source was as a distribution mechanism/channel, I’d be inclined to agree. But open source is a means of production not only a means of distribution and routing around lock in. And of course, his argument applies to all distributed software, not just open source software. Which would make Microsoft dead as well.

This would no doubt please Paul Graham, who earlier this month wrote that “Microsoft is dead“, repeating the idea that software delivered via the web is in the process of displacing desktop software. Although for him to be announcing this in 2007, ‘to be the first one to call it” seems somewhat late. Also he weakens the case for web vs desktop software by tossing Apple into the mix, and the last time I looked, Apple was a desktop software company.

To complete the trifecta, Jeremey Wagstaff [via Marc Orchant] clarified that ‘It’s Not the “Death” of Microsoft, it’s the “Death” of Software‘. That doesn’t seem right either, since there’s a lot of software running all those web apps that are killing off everybody else. Of the three prognosticators of doom, his comments resonate the most with me:

We somehow demand less and less from our software, so that we can declare a sort of victory. I love a lot of Web 2.0 apps but I’m not going to kid myself: They do one simple thing well — handle my tasks, say — or they are good at collaboration. They also load more quickly than their offline equivalents. But this is because, overall, they do less. When we want our software to do less quicker, they’re good. Otherwise they’re a pale imitation of more powerful, exciting applications in which we do most of our work.

But all this just proves to me that there has been little real innovation in software in the sense of making programs do more. Web 2.0 has excited us because we lowered our expectations so much. Of course web apps will get better, and one day will deliver the functionality we currently get from desktop software. They may even do more than our desktop applications one day. But isn’t it a tad strange that we think this is all a huge leap forward?

Perhaps its a Great Leap Forward

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.

Ignite Seattle 3

Last night I finally made it over to one of the Ignite Seattle events. I’d been wanting to get over for one of them, but part of the rub is getting a ride from the ferry to the actual location. Fortunately, Ryan Stewart was kind enough to give me a lift to and fro.

Ignite has a very interesting format. There’s a MAKE event before the talks get underway. The talk section is grouped into 30 minutes of talks and 30 minutes of mixing, which is repeated for either 2 or 3 talk blocks total. The talks themselves are 5 minutes long and you get 20 slides and 15 seconds per slide — the slides advance automatically, so it really is 15 seconds. If you’re a listener, it means you get a bunch of talks in a short time, and you are guaranteed that you only have to endure a bad or uninteresting talk for 5 minutes. If you are a speaker, it means that you really need to have your act together. It’s a challenging format, and even some experience speakers have trouble making it work for them.

Highlights of the talks:

Karen Anderson‘s Work Place Survival Tips – there was one really good one — I hope she blogs it. I had a camera in my hand, so my attention was divided.

Scott Berkun did what might best be described as a brief history of the decline of Attention.

Shelly Farnham of Waggle Labs talked about social tagging, which is the idea of tagging people with semantics which might be useful. She used the example of tagging people at conferences with tags that would help them connect with each other. That’s a problem that resonates with me, but you can easily imagine other domains where this idea would be helpful. Best of show. I’m looking forward to seeing what Pathable.com turns out to be.

Christopher Johnson‘s talk on names was particular interesting, because we’ve been doing some branding stuff at OSAF, and I found his approach based on sounds interesting. Even more interesting was his analysis of how Apple’s name related to the attriubutes of the Apple brand.

Mark Novak from Microsoft crammed a security analysis of OpenID into 5 minutes by talking really fast. The 5 minute format means that the talks are also a kind of performance art. If you were an expert and familiar with his notation it was possible to follow the talk. If not, the performance was really good.

Eric Nevala of the US Marine Corp talked about his experiences running IT for the Marines in Iraq. Eric received sustained applause and support from the audience.

The Twitter backchannel for Ignite was projected on a wall. It was fun to watch some of that chatter go by, and you can use it to get a feel for what happened. After the whole thing was over, Ryan and I spent some time talking to Monica Guzman of the Seattle PI about the merits (or not) of Twitter.

On the whole I had a great time. I got to see some friends I hadn’t seen in a while, and the talks and format were good. I like seeing folks tinkering with meeting formats — I hope that there’ll be more of that in general. Between Mind Camp and Ignite, the technology community in Seattle might be bumping it up a notch. Kudos to Brady and Bre!

I did have a camera with me, and the pictures are up on this Flickr set.

Why WPF/E didn’t make my cut

Dare Obasanjo thinks that WPF/E ought be included in the list of contenders for RIA foundation. He makes his argument on the basis of some technical criteria (which I agree with). He also says that being open has nothing to do with it, and cites Java and Visual Basic as existence proofs that a single vendor technology can rise to the top. I never disputed the fact that a single vendor solution could rise to the top. That was the point of my original post. However, and unsurprisingly, I disagree that openness is irrelevant to the popularity of RIA platform technology, especially since part of the point is to deliver solutions that run on all the platforms that today’s web applications run on. And ultimately that’s why I left WPF/E off my list, even though I’m sure it’s on other people’s.

Miguel de Icaza followed up Dare’s posting with more analysis on WPF/E, Flash and the openness of Java. He does have some slightly out of date information, since the recent versions of OpenLaszlo no longer require a server, even when Flash is the runtime. You should read Miguel’s post for his analysis of the openness of Java. He’s right that the JCP process did help get other parties involved with the future of Java, which did ultimately help it. He’s also right that the JCP brought us nightmares like J2EE (I’m not as sure that you can blame the generics mess on the JCP). I would point out some JSR’s also came from the open source community, not just from companies. Not only that, EJB3, which puts to right a number of the worst problems with EJB2, borrowed heavily from ideas that first appeared in Hibernate and Spring, both open source projects. In any case, as I pointed out in my followup posting, I’d hope that we could do better than both the W3C or the JCP for Flex/Flash or OpenLaszlo.

Ambient Intimacy – I love it.

[ via Cote ]

Leisa Reichelt has coined the term Ambient Intimacy to describe the value of Twittter. For some reason, this turn of phrase really resonates with me. [So, yet another RedMonk recommended blogger enters the 30 day evaluation folder in NetNewsWire…]

I’ve definitely benefitted from the Twitter experience — it feels a bit like my early days of blogging and feed reading: discovering new people and getting to know them through a new medium. The RIA flap of the last week or so introduced me to Ryan Stewart via Twitter. Well, actually via a combination of a RedMonk recommendation via the Twitter backchannel at Engage, but I think it’s true that I probably would have spent a bunch more time ignorant of Ryan without the events of the last week. Even more, I learned via a stray Twitter @message that Ryan is located somewhere in the Seattle area, which makes us neighbors, and outside the lush tech/social environment of the Bay Area, that’s a precious thing. Doubly so when you work at home.

Leisa thinks that the simplicity of Twitter is what has made it successful. But you can sort of imagine a Twitter-like situation coalescing via existing channels of communiations, IRC (via bots),, IM of various flavors, and the cell text messaging network. One thing that attracted me to Twitter was that it was a one stop shop. Web view, RSS view, IM integration, Text Message integration, and a REST based API for additional integration (I can’t wait until Bear gets done hacking Twitter support into supybot). There’s going to be a bunch more experimentation with Twitter, both via technology hacks, but also via social hacks. I think that this is going to be an interested playground to be a part of. The top thing on my list is the ability to have subgroups (both dynamically and statically) formed inside Twitter.

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.