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]

26 Responses to “Adobe wants to be the Microsoft of the Web”


  • Good points all. Steve Yegge (kind of) wrote about this recently when he talked about the Next Big Language.

    A minor nitpick. As a linux user with a terrible flash plugin that is frequently asked by sites to upgrade to a version of flash I don’t have access to sitting next to a linux user with no flash I dispute your claim that the penetration of flash is the same as the penetration of AJAX-capable browsers.

  • “What is not appealing is going back to a technology which is single sourced and controlled by a single vendor.”

    Hi Ted, I’d like to learn exactly what you’re concerned about. At first I thought you might be talking about the Player, but the mention of Laszlo seems to negate that.

    Could you outline the specific scenario which most concerns you? That way I could make sure I’m visualizing the same thing. Thanks!

    jd/adobe

  • If you haven’t checkout out Pyglet, you might want to take a look. Pre-alpha, but promising.

    http://pyglet.org/

    # Steve

  • Microsoft is creating WPF/E to compete, and with Java open sourced we could see realistic applet/JWS applications.

  • Everyone wants to be the Microsoft of the web, at least anyone who put in enough work to build a platform that rich enough to do reasonable development that deals with all the inconsistencies that occur across browsers and versions of browsers. If you went to all that work, wouldn’t you want to profit from it?
    That being said, I am not sure the web was every liberated from being locked into a single platform. Remember when Firefox was not around and everybody was using IE 6.0, for 5 years with little or no real alternative? I think we have to accept on some level that we are building on top of something in every software application we write, just in case of browsers they appear more benevolent than on the desktop.

  • i like your post. found it via dave winer. but grey on black? I couldn’t read it unless I highlighted, then all the links were white on light blue. ugh. copied it into a text editor just to read what you said. I think blinking yellow text on a whiet background would have been better… dont’ you?

  • oh, in case you were wondering. mac os 10.3 firefox 2

  • Excellent synopsis of the future of web apps,

    One interesting direction Adobe could take would be to open source the platform/engine (Flash Player) and continue to make a mint off of their excellent development/design tools.

    However, Adobe has very very strict standards for their Flash Players. Read the Penguin.SWF to learn more about that: http://blogs.adobe.com/penguin.swf/

    So Adobe’s attitude seems to be similar to Sun’s old argument that Java couldn’t be open sourced because it relies on 100% compatible implementations. (I wouldn’t be surprised if Adobe is watching Sun’s open sourcing of Java very closely…)

    The problem is that the single-implementation argument is a pretty good one. Look at poor HTML, JavaScript, and even image formats which have suffered from multiple implementations.

    There are some success in the multiple-compatible-implementations world: Mono’s compatibility with .Net is pretty amazing and getting better every day. However, I can’t think of a single web based technology that hasn’t suffered from multiple implementations pulling the technology in incompatible directions.

    So I’m afraid until the world of web development can figure out how to make their implementations play nice, a lot of people are going to go with Flash/Flex.

  • you know adobe has been involved in many open standards. pdf, fonts etc. so it’s not out of the realm of possibility for them to open flash/flex. what they do is build tools. the question for adobe is: do they choose the possibility that they could be the #1 provider of rich web interfaces and the $$ they see dancing in their heads, or do they continue to build great tools for people who use the open standards of flash/flex that they release?

    nevermind the problems mentioned elsewhere of linking to flash apps, or cutting and pasting text from flash etc.

  • Only problem with Tamarin is that it doesn’t help IE or Safari or any other browser.

    I believe the MPL would permit other browsers to use Tamarin as their engine while keeping the rest of the browser under wraps, but they would have to make their changes to Tamarin public.

    I know the IE team will not be using Tamarin and has promised improved performance in their engine with the next IE release and I believe they claimed that they’d be competitive.

    Otherwise, I completely agree and said as much on James Ward’s How I Overcame my Fear of Flash.

  • Thomas,

    Good point about Linux support.

    John,

    Most of my concerns revolve around who ultimately controls things like the file formats and APIs. Publishing the details is not enough. Giving non-Adobe people a seat at the table when designing vn+1 of the file format and or API’s is the kind of thing I am looking for. Think something like the JCP but not as poorly executed.

    Calvin,
    The black on white is a feature of the theme. I’ve gotten enough feedback on this that I’ll be looking at some way of making this better.

    Michael,
    Not just the player, but also the stuff around Flex/Apollo. But yes, the situtation is very similar if not identical to Java. And, yes, it seems like all the incentives are for them to do what Sun did.

  • Hi Ted,

    Thanks for the post. Let me make a few notes, and I’d be interested in your feedback.

    a) Some folks may not be aware that Flex is free (as in beer). This is a pretty different scenario than the “Microsoft of the Web”. The MSFT platform strategy is (my simplistic summary) to get developers to adopt the Windows APIs in order to drive the long term adoption of the Windows OS, a commercial product that drives a very large chunk of their revenue. The Flex strategy is a free framework, free compiler and free runtime. We make money if and only if we great good tools or servers, but there is no lock in or requirement for any commercial Adobe products to fully leverage Flex. Indeed, there are multiple third party implementations of tools and servers, some open source, some closed source, that target Flex and Flash Player already. So adopting Flex does not mean lock in to any Adobe for pay product. If you like Flex Builder (our Eclipse based IDE for Flex) cool. But if you get sick of it and want to code in eMacs or FlashDevelop or Visual Studio or NotePad, go for it. No lock-in there. Ditto for our Flex server product, Flex Data Services. It is a great product, and we have some great customers, but there is no requirement for it. You can access data via XML over HTTP, you can write your own protocal (we support binary sockets), you can use an open source server like RubyAMF, you can use a third party server (such as WebOrb.). Again, if we build a great server product, hopefully we can sell some (we are in business) but you as a developer are *never* locked in.

    b) The Flex Framework is free as I mentioned, and it ships with access to all of the sourcecode. You can modify, extend, change the source as you need. You can integrate in third party closed or open source components (eg see: http://code.google.com/p/flexlib/).

    c) The Flex framework is an abstraction layer on top of ECMAScript. Each tag in MXML is just a class of ECMAScript (aka JavaScript 2, aka ActionScript 3). ECMASCript is a multiparty standard through ECMA. We were involved in its development, but we don’t control it and many folks have a seat at the table. And we have opensourced our implementation (Tamarin, part of Mozilla now) so you can expect to see this showing up in man places and many implementations over time. We have publically committed to sticking to this standard. This gives other developers a seat at the table. We can’t suddenly turn around and make this proprietary.

    d) 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?

    e) BTW, we open sourced the core engine of ActionScript, Tamarin. We standardized PDF (via ISO). So we are not at all adverse to open source nor to standards. We tend to just try to approach these kinds of things pragmatically in terms of trying to address the core needs of our customers/developers/partners as opposed to ideologically in one or another direction. I’d love more thoughts.

    -David
    Adobe

  • … a whoosh of comments come in, unhearing of each other….

    Ted, are you saying that you will not use SWF in any way until future versions of the file format are designed by something like the W3C, and at that single change you would embrace the format wholeheartedly?

    (I’m trying to distinguish wants from needs — whether such a CSS-ification of SWF would just change the way you feel about the format, or whether it would lead to an actual improvement of some type that would allow you to use the format wholeheartedly.)

    In this case, the SWF9 file format is locked in stone, and already offers predictable rendering on the majority of the world’s computers. You want SWF10 to be handled like PDF9 and XHTML, is that the gist of what you’re concerned about here…?

    tx, jd/adobe

  • Hi Ted. I just recently blogged about the very same topic here

    Link: http://www.j2eegeek.com/blog/2007/03/01/will-or-should-adobe-open-source-flex/

    Gotten some great feedback from folks at Adobe and so I think they are taking these comments seriously. My sense is that opening up Flex would ensure the creation of an ecosystem that would encourage wider developer participation. Developers tend to flock toward open technologies and Enterprises like investing in open technologies as they help alleviate some of the vendor lock-in concerns in IT management.

  • David’s comments show that Adobe is trying to do what Microsoft has done – create a platform with a multi-sided market and charge one side of the market. Adobe would charge the developers and Microsoft (mostly) charges the end users. A true platform on the web is going to take enough work that I doubt Adobe can be successful with this play. They would either need to charge way too much for their developer tools or start charging end users. I doubt either will happen. They also face the challenge that their market of end-users can use any other platform that works in a browser without switching costs. There is nothing requiring end users to use their platform, meaning their only real selling point is how good their development tools are. So they could become a reasonable alternative to AJAX or WPF/E, but they won’t ever be able to hold the position Microsoft holds on the desktop.

  • Hi Rock,

    I guess I didn’t communicate clearly enough. You write: “David’s comments show that Adobe is trying to do what Microsoft has done – create a platform with a multi-sided market and charge one side of the market.”

    Actually, we are not charging one side of the market. Development is free and the runtime is free. No one has to pay us anything. This is (relatively) new for us, so may not be widely understood. We do sell tools for developers, and hope if they are great some (or many :) developers will buy them, but they have to stand on their own merits, their is no requirement that anyone ever buy them to use the Platform. The runtime is free, the framework is free, the compiler is free. A better comparison might be Zend (I am not an expert on Zend, but it is a similar model I believe). PHP is free. Zend sells commercial tools and products that add value for the developer or IT department building and deploying PHP apps. PHP creates a market–lots of developers and companies building stuff. Zend tries to make a business supplying tools and technologies for that market. But no one using PHP is ever “locked in” to Zend. (I realize PHP is open source–that is a difference with Flex–but the core model that Zend pursues is similar to the model around Flex: build tools for a free platform and help add value to that ecosystem, but not with any lock-in. Just compete on the merits of the tools.)

    HTH,
    David
    Adobe

  • Hi Ted! Thanks for mentioning OpenLaszlo. It seems that what you are looking for is not merely open source from a licensing standpoint, but from a community-driven development standpoint. This is something we’re working towards. We want contributors.

    You’re right to say that development of OpenLaszlo is mostly a “Laszlo show”. But we do have external committers, and we have a formally open development process, where features/APIs are put out in proposal form on our wiki, discussed in the open on public mailing lists, and so on.

    Still, it takes a lot to learn your way around OpenLaszlo internals. It’s not something you can do casually, and up to this point, we haven’t prioritized building a contributor community (as opposed to a developer community — where we’re doing very well).

    But it’s not because we don’t want people from the outside contributing and taking ownership. To a limited degree, this has been happening for a while — though mostly at the upper levels of the system and at its periphery. We have do have a formally open development process — all decisions are made in the open, on public lists — but that does not mean that it’s easy for just anyone to take part in that process.

    That’s one of the reasons that we hired Raju Bitter (OpenLaszlo community manager) — to help manage the process of making this a community-driven project. I think this will take a lot of work and is going to take a while to happen. Also, I think the “Ajax”-ification of OpenLaszlo is/was a prerequisite to the type of community participation you’d like to see. Open source developers don’t much like building on a proprietary runtime environment.

    It seems to me that working on OpenLaszlo in a substantive way is necessarily a full-time or nearly full-time activity. It takes serious knowledge and commitment to be useful to the project in a non-superficial manner, or in a manner that is not specific to a particular application that’s being developed. We would love to see more companies and individuals put in the effort to take this on.

  • (Disclaimer: I work with Ted, as a developer on Cosmo’s Ajax Web UI.) My comment is related to Thomas’s. (I’m a Linux user, and I’m intimately familiar with the ugliness that is Flash under Linux — always having a plugin that’s a version or more behind, and that “kind of works.” To be fair, things are getting steadily better, thanks Adobe.)

    Nigh-unto universal market penetration is a big selling point for Flash — but which version of Flash are they talking about? Sure, in theory a given version of the plugin behaves precisely the same no matter what the browser — that is a benefit of having only a single vendor. But it doesn’t eliminate version-to-version compatibility issues, and the upgrade process and timing occur at the pleasure of that single vendor.

    My previous job before coming to OSAF to work on Cosmo was on a heavily interactive Web-based e-learning app, KnowledgeWire, that made extensive use of the Macromedia Shockwave plugin (essentially a precursor to Flash) for its interactivity. We later used a lot of Flash as well.

    We spent copious amounts of of time wrestling with plugin version detection — on top of having to figure out what browser the user had. The installation process worked totally differently on different browsers. Sometimes specific builds of an upgrade would have odd bugs, and the auto-update process would introduce it into some percentage of our user base. And whenever Macromedia revved the plugin, there was the inevitable problem of whether or not all our existing code would actually run with the new version. Or, if there turned out to be new functionality in the new version we wanted to take advantage of, we had to figure out how to convince our customers’ IT departments to deploy it across the entire organization so we could actually use it.

    Instead of browser-compatibility issues, we had browser-/plugin-compatibility issues — not really any less annoying, just a different flavor of annoying. I guess it’s obvious, since I’m an Ajax developer, but I much prefer the flavor of annoyance that comes from working with open, non-proprietary technologies that have robust implementations from multiple vendors.

    I think Sun has done a really smart thing with Java — and I hope Adobe will see their success with that and take that into serious consideration when they think about the future of Flash/Flex.

  • Hi, “mde”… you raise a valid issue with possible versioning problems.

    “New software supports old”, that’s the maxim, and for deployed work on the web, it’s vital that any disruption be as minimal as possible. Otherwise new engines encounter adoption problems, endangering the whole effort.

    That’s why Adobe Flash Player has a lengthy “developer preview” period, where we actively solicit developers to make sure their work is not affected by new runtimes.

    This isn’t perfect — sometimes new types of security exploits require new restrictions, and these hurt — but that’s the goal, to support the world’s existing work. Anything else is simply too expensive, for all concerned.

    (For adoption & detection, Player 9 was already installed on the majority of consumer machines by the end of last year… the evolutionary rate is unprecedented. To ensure minimal Player versioning, your SWF can check which Player is rendering it, and trigger an alert if necessary.)

    But I’m not sure how this topic leads to the initial theme of “I think Adobe wants to be Microsoft”, however… seems like two different topics…?

    jd/adobe

  • Hey Ted. I’ve been wondering about the same thing. After wrestling with AJAX for a few months, Flash is incredibly tempting. To me, it seems like we’re in a similar situation as with Sun and Java, though Adobe does have tighter control around the VM. I’m hoping Tamarin is a sign that Adobe’s willing to go the more open route. Because as far as RIAs go, we don’t have many decent options available yet. I’d be interested in your thoughts about how the Adobe situation is any different than with Sun.

  • Hi,

    Ted, can you please mention some points, which would allow you to do things better if Flash Player would have been open-source?

    I like FSF and Open-Source philosophy, a promoter now. Though, I used to have different thoughts in past. I am always excited to see projects which provide different (free as in beer or freedom) options..

    I have been watching Gnash closely. I wonder, how it would make my life better. I can imagine a few good things:-

    - port Gnash to devices without getting into FlashLite licensing?
    - Use it in 3D game as texture-renderer
    - Use it as desktop-renderer for SWF
    - Use it on a platform (FreeBSD) where Adobe Flash Player is not supported?

    Some concerns:-

    - An open-source project tends to be forked at sometime, I am not an expert but I have seen some examples.
    - Which leads to multiple implementation
    - Which would make my life harder, I would be required to think of all these platforms while writing my apps, adds more to testing etc.

    That’s why I hope, Gnash is completed and I wish it doesn’t compete with Adobe Flash Player in area where Adobe Flash Player already works, specially as a browser-plugin for all supported platforms.

    I think, Adobe is more serious about different platforms, Macromedia was not that much, may be because of it’s small size. So I am hopeful and expect better things in coming future. Adobe is committed to do things and if they make some money by selling tools, I am ok with that.

    Adobe has different ways (email, prerelease programs, forums, blogs etc) to take community feedback and it would be great if you guys can help Adobe to come up with features, you would like to see.

    As David mentioned earlier, developers are not required to buy tools. I use VIM and Flex2SDK to develop applications.

    Watch this – The Paradox of Choice – Why More Is Less

  • How about WPF/E? Dare Obasanjo mentions it’s the 3rd alternative and it’s supported by MS.

  • Aaron,
    The situation is very much like Sun, but I’ve no idea what the internal politics were. As we now know, Sun had to purge some anti open source people before OpenJDK could happen.

    Abdul,
    See the follow up posting.

    Isaac,

    You’re kidding me right? I want an open RIA platform and you’re mentioning Microsoft?

  • CIO of Fortune 500

    I dunno why every Adobe employee thinks that everyone is stupid. I’ve heard this play on words argument for so long…I think they are effectively talking down to me, the community and their customers when the try to say Flex is free as in beer.

    Flex is free if you are willing to code your small 10k, 20k line app in whatever text editor you want. And you have to pay enterprise server prices for the Flex Data Services

    Their business model is essentially no different the MSFT’s. David, C# is free to run, and also to develop via command line, and w/ that it is no different than Flex. The problem is I don’t think you can get many people to say C# and .net are free as in beer. No one in my world(I own a lot of teams) would say this either.

  • A reply to Abdul Qabiz :

    With something open, like Gnash, a fork can also bring good things, we can focus the developers and influence them to create and implement competitive things like :

    - 3D hardware accelerated engine
    - support for open video and audio formats ( and not to make mistakes, choosing things like INSANE nellyHorser audio encoder ) like ogg / theora and plenty others.

    WPF its moving towards the two above, especially the first one mentioned, thats their ACE card.

    If flash doesnt bring 3d really fast ( and i mean real 3d, not struggles and tremendous amounts of work like papervision does, or other existing 3d frameworks ) it will open a place for ms to gain a lot of developers and momentum in the detriment of flash..

    Another thing that you can say about adobe is that they dont have a clear and public view about opensource projects like red5 or amfphp.

    Things that use their proprietary formats.
    Every client is spooked about breaching patents.

    But also, clients are not supposed to pay thousands of dollars on something that doesnt worth that money.

    I dont know where adobe is heading to, but they really look like MS of the WEB.

    Open doesnt necessarely mean “open your source code”.
    It means in fact : “Help US, HELP You that will eventually help us both” and the one who said something like JCP is right, just dont do the same mistakes.

    You need more transparency with your developers, in the last macromedia era, they started opening so much of their products, after every big release of the player, everywhere on the web we could see flash wishforms, with replys from people like JD or Mark(Mesh), now, it looks so closed!

  • Adobe’s high standards for Flash no longer matter, and its universal penetration will disappear, as swfdec can now play YouTube (Flash’s current killer app) so it’ll only a matter of time before Linux distros start shipping it, particularly as it works on AMD64 where the official Flash client doesn’t. So Adobe better get its act together and open up the Flash docs or Flex will die from incompatability.

    Hmm, if swfdec gets triple-licensed I could even see it being integrated into Gecko, although I grant it’s pretty unlikely. Some sort of marriage of SVG and Flash would be pretty hot though.

Leave a Reply