Adam Nash wrote a nice follow-up to my post on cross platform development, which was, in turn, a reply to his post on the topic.
While the discussion appears to be a debate, I actually find myself agreeing with what Adam says (or not disagreeing at least.)
- We both agree writing cross platform software is hard and can go horribly awry when done poorly.
- We both agree that well-executed cross-platform software is a sign of an excellent development team.
- We both agree (if you read the comments, etc.) that games and productivity software may be different in the need to be "native" feeling (that games like WoW don't need to feel "OS X-like" or "Vista-like" because they take over the whole screen and don't really interact with other apps or the OS.
- We even agree that working cross platform teaches and grows developers in a way that working on a single platform may not.
Where we may disagree is whether this productivity gain offsets the additional costs of working cross platform. I suppose that depends on the product, how much additional work is required to work cross platform, and how good your team is.
Finally, Adam is correct to introduce what is, perhaps, the ultimate metric by which to determine whether a team should do cross platform work: which approach will allow the product to best succeed? Ultimately, this depends on the metrics of success for that product and the market they're in.
In particular, he raises the question of whether our decision to focus IE on a single platform was smart and whether that decision opened the door for Firefox. It's my belief that web browsing should be an integrated part of the overall computing experience, not simply a sandboxed TV-set on the Internet. The work we did on the RSS platform in IE7 and the availability of IE components as Windows platform elements are a reflection of that view. I don't know how efficiently we could further this model by working cross platform. Success for me and IE is how well we can deliver on this vision, so single-platform development makes sense for us. (We had Mac and Unix versions of IE in an earlier day when browser share was our only success metric. As our view changed, those versions made less sense, so we dropped them.)
I think Firefox was able to establish their share because they brought a solid browser to the market when we took our eye off the ball and had stopped investing in the browser; I don't think the fact they're cross platform helps them that much. The vast majority of their users are on Windows (I don't think they're even the most popular browser on the Mac). I really wonder if they'd be better off just focusing on Windows; looking at their bugs and work items, they certainly have a lot of work to do keeping FF running well on Macs, downlevel Windows, and Linux distros. Could they have delivered more of the stuff they had to cut from Firefox 2 if they only had to do Windows? Probably. Would it have mattered? Who knows.
At the end of the day, the market will decide which approach is best in each case. I wouldn't have it any other way.
Adam Nash Reply
Hi Tony,
Wow. Two full posts. Since we're mostly in agreement here, I'm just going to post one extra comment here.
I knew when I wrote that little Firefox comment, that you'd have more insight and opinion there. Let me explain a bit where I was coming from.
I believe that within the high tech community, there is a significant minority (10-20%) that is firmly anti-establishment. Frankly, it's in the DNA of all the great tech companies, Microsoft included.
Some anti-establishment developers tend to bias towards Linux, although there are a few on the Mac. Some anti-establishment consumers tend to end up on a Mac.
Unlike typical commercial development, open-source developers donate their time. As a result, if they love an alternative platform, they dedicate their effort there.
I think the decision to make IE components available as general services was a great one. But by not providing those services on the other platforms, an opening was left that needed to be filled. The anti-establishment developers gladly filled the hole, since it fits their bias to offer an alternative.
Personally, I think that if high quality IE components had been available cross-platform, their would have been a more broad developer adoption of those components, assuming they were free and high quality. For a while, most websites only worked reliably on IE, so there would have been a huge bias on all platforms to standardize on the IE components. Not having them there left a hole that had to be filled, and naturally, since Windows is the largest market, it was natural for that effort to span into that domain as well.
If Mozilla was a traditionally organized development organization, the comments about effort supporting minority platforms might apply. But I think the very nature of an open-source community changes the situation.
At this point, it's history, so no sense in going into too many what-if scenarios. Besides, I'm just an innocent bystander here.
- Adam
PS Those Linux & Mac ads are back I see :)
Mitch 74 Reply
Hi Tony,
Having followed Firefox 3's development closely, I'd say it's not Linux which was harder to support (X11's interface is pretty stable, and Gtk too), but Mac (they're still at it) and Windows 4.xx - that's why the first officialy dropped platform in Mozilla's history is Windows 95/98/Me (I don't think it was ever developed for Win16).
For that, I do join Adam in his comment that the open-source nature of Mozilla makes it easy to support: the Linux port is, in fact, strongly supported by Debian, Red Hat, SuSE, IBM, but also xBSD, Solaris etc. developers.
The very simple fact that, sources being available, a developer for a minority OS can grab the sources, put some glue on it and make it run on his/her platform of choice then share this code with upstream, to have it reviewed, cleaned up then integrated, is a strong reason why Firefox filled the gaping hole left by IE's monoplatform culture (IE for Win9x wasn't the same as for WinNT, radically different from IE for Mac, I won't mention IE for Unix... Go and build a product over a unified interface there!).
Of course some are anti-establishment; but, personally, I think that the very simple fact that not everybody is on Windows makes development of something like a webmail anti-IE and pro-standard. I'll take one example: due to ActiveX, Outlook Web Access can't be used on a Mac; however, Gmail works without ActiveX but requires heavy Javascript - it's best used with Gecko, which can be found on Windows (any version, even IE7-devoid Windows 2000), Mac OS (Firefox or Camino), and UNIX/Linux (Epiphany, Firefox, Seamonkey).
Thus, for any organization providing webmail and calendaring through the Web to their employees, and who may include Mac workers (designers, or yuppies) and/or sysadmins (Linux, BSD), it's easier to provide it through Firefox - while providing it through IE is, by Microsoft's own design, impossible - making IE a no-go from the project's inception.
If it's any comfort to you, if Netscape hadn't released Gecko before sinking, there would have been a Windows port of KHTML/Webkit much sooner...
Mitch