==

==

A couple of weeks ago, the Windows 2000 installation on my work laptop blew up. Not really sure why, but I thought it may have had to do with my wireless NIC driver (which I had only recently “upgraded” before it allegedly brought my system to a screeching blue screen halt). After fighting with the box all weekend–and thankfully managing to backup My Documents to my file server at home–I sheepishly called the helpdesk at work and asked them to send a technition. Three days later, I got my PC back with a brand new Windows 2000 image.

Having a new Windows installation is a bittersweet experience. On the one hand, the PC seems to have regained its youth, happily responding to every click and keypress with instant compliance. On the other, all of the shortcuts and clever applications you use to shorten your workflow are gone. Every process that was once only three steps now becomes 38 steps as you have to reinstall software, resolve dependencies, and establish shortcuts. Reinstalls, though, are also a great time for experimentation. As I reintegrate software into my daily workflow, I find it easier to try out new software that I otherwise would have ignored (why go looking for an alternative if you’re already happy with what you have?).

Most notably, I went looking for a new RSS reader. Previously, on a succinct, but glowing advertisement from Mark Pilgrim, I had been using FeedDemon. FeedDemon’s greatest feature–to me–is its ability to categorize news feeds. Not an astonishing development, nor programmatically difficult, but, at the time, finding a news reader that makes good sense of its categorization scheme was hard to find. FeedDemon also has some other interesting features, such as its ability to watch for keywords and alert you when those keywords occur in one of your news feeds. But, as the software’s development life cycle matures, some characteristics have started to wear on me. In particular, the user interface has taken cues from Microsoft’s Windows XP (which, in turn, seems to take its design cues from Fisher-Price toys), so the interface has taken on the bubbly, cartoon-like approach. Perhaps more frustrating, though, is that FeedDemon uses Internet Explorer’s engine to render web pages.

Because I lost my RSS subscription list (which I didn’t mind, I find periodic loss of my news feed list good for my mental health), I was free to choose any software to replace FeedDemon. At the outset, I wanted software that would integrate with my most favorite application in the world, Mozilla Firebird. I love tabbed browsing. I love popup blocking. I love the searchable history, the simple Bookmark interface, and the various plugins I use on a day-to-day basis. Every time I try to venture into the world of IE, I dearly miss these things. Not because I have this deep affinity for nerdy things (okay, well, I do, but it’s not really the reason)–it’s because these things help me get my work done quickly and efficiently. Naturally, I would want all of these things in my news reader browsing experience, too.

If you’ve been following Firebird development, and use an RSS news reader, you’ll know how disappointed I was with the results. There are currently three working-now news reader plugins for Mozilla (namely, NewsMonster, RSS Reader Panel, and Aggreg8). Three. Do you want to know how many there are that are built on top of the Internet Explorer engine? Almost 30. Now, I have my niggling annoyances with each of the three Mozilla plugins offerings, but my biggest complaint is: where is the choice? Depending on what you’re looking for, NewsMonster may be too feature-rich, RSS Reader Panel too simplistic, and Aggreg8 too incomplete. Then you’re stuck. “Go write your own.”

Which leads me to the question at hand: is Mozilla development too hard? I’m no programmer, but I’ve taken enough programming classes and read enough of Creating Applications with Mozilla to have a feel for what’s involved–what is it about the IE/.Net platform that makes dozens of developers choose it over Mozilla/XUL? Why haven’t more people taken up the challenge of developing the ultimate Mozilla RSS plugin? Is it because the IE/.Net developers write their code in evironments they already use at work? Is parsing the feeds just a lot easier with Microsoft’s tools? Does designing the UI make more sense in drag-and-drop tools than hand-coding XUL? Are web services clumsy on the Mozilla platform? At what point does XPCOM’s notoriously-complex interface come into play, if at all? What about the developers who are writing code for Mozilla? And the several other developers who have written over 100 great FIrebird extentions?

If I took the time to try and develop my own solution, I may be surprised to discover which of these questions point out difficulties in the Mozilla development lifecycle and which are irrelevant. But, when Ben Goodger issues the Mozilla & blogging communities a call to arms for blogging software (and even garners some nice incentive), to which almost nobody responds, I’ve got to wonder why.

h4. Further Thoughts (11/29/2003 @ 11:00 PM)

Some have given some feedback on the idea that Mozilla development might be too difficult.

Mike noted that IE is the standard development platform for Windows: all of the tools, widgets, and libraries are available to any developer who might want to tap into IE-as-a-platform. He also pointed out that Microsoft has a lot of incentive to make developing for .Net as easy as possible. The more successful IE/.Net is as a development platform, then the more assured Microsoft will be that they have a sustainable market for their operating system. If any other development tool is used for a product–particularly one that lends itself easily to cross-platform development–the less sure that Microsoft Windows will be a part of that product’s strategic future.

What really strikes me about this, though, is that Microsoft’s tools cost money. The breathtaking $1,799.00 enterprise licensing fee for Visual Studio .NET 2003 is a decidedly high barrier for entry for hobbyist developers, who would rather turn to open source alternatives for their needs (such as Perl, Python, and a host of others). When it comes to user interface application development in Windows, though, MS tools are the de facto standard. Why? If Microsoft’s fees are so high, what is it that still compels developers to use these tools?

Mike asserts that the best applications will almost always come from the OS vendor. While I see the point he’s making, I can’t whole-heartedly agree. My browser and email client (by the way, have you seen the latest Mozilla Thunderbird?–it’s beautiful) are developed by the Mozilla Foundation. My MP3 player is developed by Apple. My FTP client and blog writing software are also third-party. There are MS alternatives to at least a few of these, but I think I’ve chosen the better software in each case.

Neil claims that Mozilla development isn’t too hard–he points to the 100+ extensions that have been written for Mozilla Firebird to prove it. I agree that the number of extensions is a testimony to the fantastic ability to enhance the browser through modular plugins. But, my issue is with the lack of developer interest in comparison to those that use Microsoft tools, particularly in this area of RSS aggregation. My biggest struggle with the issue is perhaps that syndication via XML is really the future of the web, and ten years from now we’ll laugh at how clumsily we implemented this strange new technology. Mozilla development for the “syndicated” web seems to be woefully absent, and I’m troubled that we might be missing the boat.

Dan points out the problem is not in the technology, but in developer awareness. I tend to want to agree here, and if this is the case, I should have asked “Is Mozilla Development Too Esoteric?”–not too difficult. I can attest that within a few hours of playing with XUL, I was able to get some widgets working and provide basic functionality behind them. Designing in XUL/CSS is as easy as designing websites, and JavaScript is a flexible, easy language to write in. So, I would assume that the problem isn’t technological, but sociopolitical. When Mozilla 1.0 came out just a few years ago, I thought the technology breakthrough was the browser. I downloaded it…and was disappointed. There was nothing new here but the same old ugly Netscape. What I didn’t see (as a browser end user) was that the entire browser itself was being rendered with the Gecko engine–a clever, intuitive application framework had been invented. I only became aware of this fact last year when I was researching cross-platform development tools for my Senior Project. Then I started to realize XUL’s potential.

I suspect a lot of people are still where I was a couple years ago–looking at Mozilla and saying, “what’s the big deal?”

As a final note, I’d like to say that I’m asking these questions because of my Mozilla advocacy and sincere curiosity. I want to see Mozilla succeed as a development platform because it means the applications I love most will continue to grow and mature. I’d like to see a dialog develop around this question of why Mozilla is often overlooked as a developmental tool and explore ways the community can improve Mozilla’s standing. Thoughts and rants are welcome. :)

h4. Even Further Thoughts (12/3/2003 @ 10:30 AM)

This thought occurred to me this morning: most of what makes a good developer product is the community efforts that spring up around them. I noticed this yesterday when I was doing a little VB coding for work.

I have this great application that I use to track tasks at work. It’s slick, it’s fast, and many, many hours went into keeping the UI out of my way when I’m entering data. I had come up with another tweak and, two iterations later, discovered that I needed to glean some advice from the VB developer community. So, I did what anyone else would do if they were looking up advice on Linux installs, dog breeds, or pie recipies: I used Google. A few clicks later, I had three different solutions to my problem.

Phil Wilson hinted that these kinds of development communities are conspicuously absent from XUL. If you want help for PHP coding, php.net will provide you an annotated manual with real code examples and a lively forum. The first thing Microsoft did as a “viral” marketing effort for ASP.Net was give away a free version of it’s IDE, write a free beginner’s guide (PDF), and start a development community forum. Both of these communities understand that garnering developer support is more than simply giving them the manual–it’s the two-way communication that enables programmers to connect with one another and hash out real-world issues. Sure there’s IRC and email, but experts don’t want to answer the same question over and over again. XUL needs a developer’s forum so programmers can connect with others, share experiences, drive awareness, and distribute knowledge to the community.

If a large part of the problem that XUL faces when competing with other UI technologies is truly social, a development forum should go a long way to help people discover and have their questions answered about XUL. Ideally, it would be sanctioned under the Mozilla Evangelism effort, but anyone who is Mozilla-savvy enough to know about XUL, knows how to build a good community forum, and is good at connecting with people should be able to build such a site. And, hey, URLs and web space are cheap, and forum software is free. Who will build it–will you?