Category Archives: open source

Open source peeps and Dopplr

People working in open source have limited opportunities to meet each other in person. My own experience is that meeting someone in person, even if it is only once, can be a help in working with them in the virtual world. The Dopplr service is a social networking application oriented towards people who travel. I’m already using it to find out who is going to at OSCON and ApacheCon US later this year. Meeting folks from various open source communities in person has been an enriching experience for me, and I’m glad to have help at making that easier.

Let me know if you want a Dopplr invite.

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.

Is there a better way than the JCP?

[ via Don Park ]:

Elliotte Rusty Harold is asking if there’s a better way than the JCP:

On reviewing this, I think I’m struck by a fundamental flaw in the JCP for the first time. Sun is still mired in a 20th century, waterfall, big bang approach to development. There are at least three, probably more, different things going on in this process that could certainly be separated and developed independently.

Still I wonder if there’s a better way (and perhaps the open sourcing of the JDK might enable it).

It’s good to see people asking the right questions.

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.

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.

It’s all about the governance

About a month ago, when talking about the prospects for more open RIA technologies, I wrote:

I’d hope that we could do better than both the W3C or the JCP for Flex/Flash or OpenLaszlo.

After yesterday, I think my reasoning ought to be obvious. FAQ link for those new to the issues. Stefano and Ben, as always, find a satisfying way to put it, and Redmonk’s Steven O’Grady has a fair minded analysis.

The details of Java and Apache aside, I would call this whole situation a case study in how not to setup the governance for something open. I have never been a fan of the JCP process because Sun has always had rights that no other participant had. To Sun’s credit, the process has become considerably more open since the JCP was created in 1998. On the other hand, that openness is the result of *years* of hounding by the ASF and other organizations, and now, 9 years later, there are still hiccups. The world is a different place today in 2007 than it was in 1998, and general understanding of openness and community are much greater than when the JCP was founded. I would hope than anyone setting out to build a governance model for some piece of technology would look long and hard at the lessons (good and bad) of the JCP experience.

Open Source does not imply dictatorship

From Dave Winer’s piece on The theory of Twitter

In open source communities they call the imbalance a benevolent dictatorship. Far from being a perfect democracy some people imagine open source to be, actually a project sinks or swims based on how good the central decision-maker is. Again, people complain about the A-list, but that’s okay, work gets done over the objections.

Well, not all open source projects are dictatorships. Apache, Eclipse, and Subversion are examples of prominent open source projects whose governance model is not a dictatorship.

Google Summer of Code is now open for students

If you are a student, the 2007 edition of Google’s Summer of Code is now open. Summer of Code is like an internship, but instead of working for a company, you work on an open source project. Google supplies a stipend for you, and you’ll learn technical stuff and also learn how open source projects work. If you’re ambitious, this could be your chance to get your code into an open source project and have it used by people around the world.

If you know a student who might be interested, please point them at the Google site. If you know female students, who might be interested, *really* encourage them to apply. Here’s a concrete way to help women get involved in open source projects.

OSAF is going to be participating again this year — the relevant information is here.

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.

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.