oh snapdragon

I’m late to this particular announcement, as I didn’t really have useful internet during the critical period last week, but that hasn’t dampened my enthusiasm one bit.

The Open Komodo/Snapdragon announcement is very exciting for me, and I suspect for many others in the Mozilla community. Having a basic, extensible IDE built on the same technology as Firefox (and therefore the web) will provide a great focal point for many of the IDE efforts that have been mooted around Mozilla technology over the years. People will be able to focus their energies on the specific tasks they wish to enable or improve, taking advantage of the incredible base that ActiveState has built.

I was lucky enough to be involved in the discussions and planning leading up to this announcement, and I think the most exciting thing about it wasn’t the prospect of the source release, though I am indeed eager to get that technology into the hands of the Mozilla developer community. The most exciting thing for me was seeing the depth of ActiveState’s commitment to the open web, and how enthused they are about helping to create a new open source community. This is a huge, huge investment in the open web by a small, small company, and I can’t wait to see where it’s going to take us — where we’re all going to take each other, in fact.

So thank you to Bart and Shane and David and Erin and all the others at ActiveState who had the vision and courage to make Open Komodo a reality, and to everyone who has already expressed their interest and support for the project. It’s going to be a blast.

interpolating the platform

Mark blogged about the new Firefox -app switch, which I think is a pretty interesting thing. Of course, it’s not a substitute for XULRunner, which gives the application developer complete control over important things like the update cycle and process, and it’s definitely not something that we’re recommending people use without a lot of careful study.

This is something that we’ve been asked to provide for quite some time, and even with the tight coupling to Firefox in versioning and launch syntax I think it’s going to be a valuable addition to the repertoire. Here’s how I now see the platform spectrum for our technology:

  • Web applications. If you can do it here, you should. We’re working with other browser developers to develop and standardize new web-platform capabilities all the time, because being able to put your app in this bucket brings a ridiculously large number of benefits for users and developers both. With webrunner you’ll have a way to give users an optional desktop-launch experience that they may be more comfortable with, even.

  • Firefox extensions. There are thousands of them that have been able to build great experiences (and, in some cases, great businesses) with products that are tied to the Firefox maintenance-update rhythm, and we’re seeing more great stuff all the time.

  • Firefox “-app” apps. This is a nice little hybrid where you are still coupled to the Firefox update cycle and so forth, but get more isolation from the browser process and end-to-end control over the UI. As Mr. Finkle said, this is a sharp tool with its handle loosely attached, so please use care when using it. If extensions aren’t suitable for your project because of the update cycle model, then this very much won’t be either. For prototyping, or some extension-like uses, it’ll be killer, though. (I like that the apps are started with “firefox -app”, because it’s another hint that the thing you’re doing is dependent on Firefox, and that changes to Firefox could hurt it. I think it would be more confusing to have it be called “apprunner”, f.e.)

  • XULRunner apps. I need say little more on this topic; Joost and Songbird and Komodo and Miro and…yeah.

By no means do we expect, recommend or condone XULRunner-grade apps being moved to this model without extreme care, but a lot of people building such apps, especially smaller ones, have been asking for a way to piggyback off Firefox’s awesome update story while still having their own top-level chrome.

Arigatou gozaimasu

The Firefox Developers Conference here in Tokyo is, simply, amazing. We have more than 150 people here, it’s very well-organized, and the simultaneous translation is basically a form of black magic. They apparently even did a great job with my keynote, and since my speed-talking is the sort of thing that translators use to scare their children into bed at night, I think you can perhaps appreciate how impressed I am. I’m hungry and tired, but the presentations have been well worth the long day. Mark and Justin did great presentations, and there have been some excellent discussions about AMO, extension localization, documentation, FUEL, and many other topics.

Also: I started to use Flickr to gather my photos from this trip, including some pictures from our trip to Tsukiji. I’m pretty pleased with my new camera, which does a pretty good job of hiding photographic incompetence.

taking it on the road

On Sunday morning — they have a 6 in the morning now, which is an innovation that I’m sure benefits someone — I left for the airport to embark on a 16-day, 6-city, 41-flight-hour, 30,000-kilometre world tour. What got me out of bed that early in the morning? The same thing that gets me out of bed most mornings these days: helping people understand, contribute to, and benefit from the incredible power of the open web.

So I’ll be literally travelling around the world, meeting with partners and co-conspirators, talking to the press and developers, telling people what the open web is all about, learning how to tell that story in a compelling and energizing way, and trying to remember to stretch every few hours. Along the way I hope to hear a lot of other stories about the open web: its successes, its challenges, its surprising consequences, its possible futures. The open web is bigger than Mozilla, and the challenge ahead of us is to frame the discussion in a way that is inclusive of other perspectives, while staying true to the strengths and values which make the web such an amazing thing. And, more specifically, ahead of me. It’s an amazing opportunity to meet with some of the people who help make Mozilla a force for good in the world of technology, and I’m going to try to share the experience through my blog.

I’m boarding for Vancouver now to meet with ActiveState — who have been members of the Greater Mozilla Community for many years — coming from a brief visit in Boston featuring, among others, Nicholas Reveille of the Miro project (nĂ© Democracy). Already I’m seeing new challenges and opportunities for the web in areas of participatory video and media, and I’ve barely started on my trip. I’ll be in Tokyo and Paris at the developer days, in Munich and London to meet with press and other interested folk, and stopping in Denver and Frankfurt only briefly to sample their airport amenities. If you’re in one of those places and are willing to try to juggle with my full and fluid schedule, let me know and I’ll do what I can to meet up. I’m always excited to meet more Mozilla and web folks, and I’m usually a soft touch for a drink or two.

As my wife knows only too well, I can talk about Mozilla and the web all day, every day, and never get tired of it. I’m emotionally invested in the web, I take threats to its integrity personally and seriously, and I think there’s a fight brewing over the future of how people use technology to communicate, collaborate, do business, and share experiences. I hope to infect some people with my passion on this trip, and come back with a more comprehensive sense of what makes the web special to everyone else.

calming the XULRunner waters

Mark had it exactly right: Mitchell’s post about XULRunner (and other things) was not an announcement that we are killing XULRunner. It was a statement about what the Mozilla Foundation is planning with respect to some very specific capabilities and deployment plans, due to our analysis of effort and return with respect to our primary mission.

To help people who might have been confused either by the original post or some of the reactions to it, I offer this summary:

  • The Mozilla Foundation will not be working on the a shared, system-wide XULRunner deployment capability in the Gecko 1.9 timeframe. This means that applications which are built on top of XULRunner will need to ship a copy of XULRunner with their apps, or otherwise ensure presence of an appropriate one (version, build flags, etc.). This is, to be clear, what every XULRunner-based application is doing today. Many applications in fact ship with small patches to XULRunner in their distributions anyway, taking advantage of the open source nature of our platform to make different impact/value trade-offs than we do for Firefox, and on their own schedules. This is not to say, by any means, that we do not see the value in a future that includes a universal XR runtime, with appropriate versioning, update, profile-sharing and other wonderful capabilities. It is to say, rather, that we feel the investment required and the risk of destabilization isn’t appropriate for us to undertake directly during this development cycle.
  • The Foundation will very likely not ship a “reusable” XULRunner as part of Firefox 3. While it’s still quite possible that Firefox 3 will be built on top of a private XULRunner, as outlined above, we will likely not take the schedule impact on Fx3 that would be required to make that private XULRunner usable easily by other applications.
  • The Foundation is interested in supporting the production and distribution of “naked” XULRunner builds suitable for application authors to take, customize, and distribute. This is an area in which virtually any member of the XULRunner community (including those who are apparently very invested) can make a very helpful contribution, as members of the Eclipse AJAX group have done already in providing contributed builds. I believe that the SeaMonkey project, which the Foundation supports not through directly-tasked developers but instead through infrastructure and enormous investment in shared platform work, provides an excellent example. XULRunner’s very origin is from “outside the Foundation” in bsmedberg’s early work, and given the presence in the XULRunner community of funded companies like Songbird and Joost, I am confident that both the interest and ability to assist themselves and others in this area are present.

Other important points from Mitchell’s post, which deserve deeper discussion in other posts, include:

  • A desire and commitment to invest in improving interactions with the entire XUL(runner) development community.
  • A continued commitment to invest in the powerful and valuable shared platform for the web and beyond.
  • A keen interest in improving the process of getting good and appropriate patches and other improvements (hello, docs and tools and build help!) into the common repository or pipeline promptly and predictably. As XULRunner itself is about 1000 lines of code that differs from Firefox, the bulk of the work is likely to be in build, packaging, update and other “meta” areas, I suspect.

now don’t take this the wrong way

(It’s the weekend, I’m off the clock; if I catch this attributed to “Mozilla”, as I saw people referring to my previous post, I will probably be quite cross. There is irony in that, but you shouldn’t feel compelled to comment on that.)

If people don’t stop link-dropping me Chris Messina’s performance art, I think I might have to hole up in a mountain cabin with automated weaponry and an ever-declining respect for personal hygiene. Don’t get me wrong, I think Chris is a pretty clever guy, and I’ve quite enjoyed the handful of real conversations I’ve had with him. He dances with the camera in a way that makes me a fair bit self-conscious, and he has Fortune Cookie 2.0 down so pat that I expect to open the BBC one day and find out that Venezuela is going to bust his patent and start making generics.

And I have a little of the manic in me too, so I can imagine how awesome it would feel to just Go like that: ranting into a recording for most of an hour, railing against enemies of the revolution; tossing half-formed ideas into the void (where they might contact the half-formed anti-ideas you threw in there 30 minutes prior — so much light); rubbing up against acceptable heresies until they’re polished and gleaming.

But if people are so starved for rah-rah web hope, if they so badly need something to Engage them, to let them feel like they’re glimpsing part of the Web Conversation, like they’re hiding under the tablecloth at the Cool Web Kids club holding their breath so nobody hears them over the gentle hum of pingback high-fiving and literary appropriation that they will spend THREE THOUSAND CONSECUTIVE SECONDS staring at Chris in a looking glass, taste buds a-tingle in anticipation of the next bon mot…. Well, damn, people. There’s work to be done. (Though, in all honesty, we’ve all sat through longer conference presentations that I’m sure were less thought-provoking and interesting. I haven’t even found time to watch Chris’ opus, but I’m pretty confident in this position.)

“Mozilla” can and probably will do many of the things I’ve read in people’s emailed excerpts of the FLV that Chris wanted to nail to the door of the church, because “Mozilla” is all the people who want to be part of it. People who agree that the Web needs a champion that isn’t going to try to slip something in their drink, a champion that isn’t going to ask you to pay to register once your free trial expires, a champion that tries every day to be a living expression of the web and sometimes succeeds. “Mozilla” is the people who build Spread Firefox and the people who dump it when they want to do something else. “Mozilla” is the people who write add-ons for Firefox and the people who will go to their grave improving SeaMonkey long after it was “supposed to be” gone. “Mozilla” is the people who help their friends and co-workers not only use Firefox but understand what that choice means. “Mozilla” is the people who mix their pronouns and metaphors because they’re terrified and proud and excited and can’t make all the things they feel about the web fit into text. “Mozilla” is the people who understand that telling Mozilla what it should be doing is like saying “nobody in my neighbourhood cares about the litter” but not picking up a piece. Chris didn’t need permission from a centralized authority to drive Spread Firefox, even ignoring the odd dichotomy of “you should make a centralized decision to drop SF so that you’re…not acting as a centralized decision making body”, he just needed to be willing to take action that might not succeed, and that would put his beliefs and goals out, in a concrete way, where people could see and judge them. He just needed to be willing to make the hard economic (scarcity, not prime rate) decisions about where to spend his time even if people were telling him he should spend it somewhere else, and I’m pretty glad he was willing. It’s scary as hell at times, and it’s a ton easier to tell people what they should do than to do what you think should be done — I speak from decades of experience here — but talk can’t change the web, can’t protect the web. And the web needs changing and protecting, make no mistake about it.

So if there are other aspirants to Ze Frank’s throne out there who want to spend an hour energizing the blogeratisphere and getting fitted for a pulpit — and I’ll be honest, you’re almost certainly not going to do it as well as Chris, unless you are actually Ze Frank — I encourage you instead to make a screencast showing someone how to use a part of Firefox, improve a document for a web developer near you, test an add-on from the sandbox, help someone make their web site work better with Firefox and SeaMonkey and Opera and Camino and Safari and all the other standards-oriented browsers out there, test a nightly, participate in any of the bazillion discussions about where the browser and platform could and should go. Do something that you think “Mozilla” should be doing, because if you’re on the web, and you care about the web, and you’re afraid that we might yet again have a monoculture of stagnation on the Internet, you’re “Mozilla” — even if you don’t know it yet.

the high cost of some free tools

(This is going to be a little long, for which I guess I could apologize, but it’s my blog, so whatever.)

So let’s try this one on for size, because everyone is offering the web developer a set of tools to lure them off the web. You’ve got your silly season participants, and you’ve got your — no, honestly, grown-ups came up with this name — JavaFX Script stuff, and they all want you to give up this archaic web thing for something so much shinier, and faster, and man have you seen the cooking-show demos?

You can point and you can click, and you will get an application, and it will run on the web (says Silverlight, because Microsoft has always been about the web: they were just getting up a good head of steam when they left IE6 dangling for years; they were always planning to come back) and on the desktop (says Apollo, because Adobe is best known for its “web” stuff in this space, but when Silverlight comes to the web, I mean, what would you do?). And it will be glorious. You will have graphics and drag-and-drop widgets and you can bet there will be pretty colours and probably a billion language choices, and if it doesn’t generate the cutest little installer then you can have your money back.

Adobe and Microsoft have always had better tools, in part because they’ve staffed and organized hard against them, but also in large part because their platforms require tools — that’s a big part of their business model. I don’t think you should need to buy, or even use-for-free, any given tool to build the web, and by using and helping to drive open web technologies Mozilla lets people choose the tools they want to use. We don’t force you to use the ones that we make money or marketshare on: you can use Eclipse or Firebug, Rails or J2EE, Komodo or Notepad, YUI or Dojo. If you ask the people who are building the exciting and significant apps on the web today, be they gmail or eBay or twitter or facebook or flickr or even Windows Live Search, I bet you that vanishingly few of them use IDEs. They use the tool that works best for them, for a given problem, sometimes using a bunch at once. I would be very surprised to discover that all of a given team even uses the same text editor, to be frank.

(We also don’t make you sign licensing agreements to get the format specifications, or prevent you from competing with us. We don’t tell you where you can and can’t install the software. We don’t tell you what you can and can’t tell people about your experiences, or that you can’t give it to other people with whom you might want to collaborate.)

If you choose a platform that needs tools, if you give up the viral soft collaboration of View Source and copy-and-paste mashups and being able to jam jQuery in the hole that used to have Prototype in it, you lose what gave the web its distributed evolution and incrementalism. You lose what made the web great, and what made the web win. If someone tells you that their platform is the web, only better, there is a very easy test that you can use:

Is this the web?

When the tool spits out some bundle of shining Deployment-Ready Code Artifact, do you get something that can be mashed up, styled, scripted, indexed by search engines, read aloud by screen readers, read by humans, customized with greasemonkey, reformatted for mobile devices, machine-translated, excerpted, transcluded, edited live with tools like Firebug? Or do you get a chunk of dead code with some scripted frills about the edges, frozen in time and space, until you need to update it later and have to figure out how to get the same tool setup you had before, and hope that the platform is still getting security and feature updates? (I’m talking to you, pre-VB.NET Visual Basic developers.)

Mozilla has always valued and supported web developers, and in turn those who support developers with tools and other assets, and we’ll invest more in this area over the coming year. But we’ll do it in a way that makes sense for the whole web, and brings to bear the human-manipulable power of web technology: a great set of primitives that people combine in very different ways, giving developers a great opportunity to choose tools and toolkits and patterns and technology that suit how they want to work and what they want to build.

The web can eat toolchain bait like this for breakfast. And, if Mozilla has anything to say about it, it will do just that. You won’t have to give up the web to work offline any more, or programmable 2D graphics, etc. Soon you’ll have the power of 3D and great desktop/application integration as well, via projects like canvas3d and registration of content handlers, and you’ll have it in a way that’s built on open specifications and a tool ecosystem that isn’t a monoculture. Why wouldn’t you choose the web, given its record and power and openness?

« previous page