Is Mozilla Development Too Hard?

==

==

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?

15 thoughts on “Is Mozilla Development Too Hard?

  1. I would think that the lack of development for mozilla/firbird rss software on windows is because the standard is IE. On windows, nothing will integrate as well into the OS as IE does, and ultimately, for the average user IE is the way to go. Software updates are integrated into it, MS Help, etc … MS is betting the farm on .Net and will want to make it as easy as possible and make sure that most people develop for it on windows.

    Unfortunately for those that want to use windows, but also use better software than the norm will always find it more difficult. Choices will be more limited, rarely designed as well as the microsoft alternative (You’ll find the same situation on any platform. The software developed Apple is better integrated in the OS … the software included as part of gnome works nicer than the software developed by joe-shmoe in his spare time)

  2. It’s not too hard. They just don’t know that it exists. If they’ve heard of xul, they think it’s Netscape’s propprietary dhtml stuff. It’s a PR problem.


  3. Mike asserts that the best applications will almost always come from the OS vendor

    Thats not exactly what i said … I used the words “rarely designed as well” … that doesn’t mean that the MS products are better, just that they are designed better.

    Thunderbird verses outlook: compare that to “Apple dual G5″ verses “eMachine 433″

    The apple is beautiful looking, its fast, its sleek. eMachine is priced right and is stacked to the ceiling in every walmart across the country. Which is the average consumer going to by? then ask which is better.

    MS Designed outlook to be a part of the work flow. It was designed to be easy to use for an MS Office user, and integrate into MS Office. It was designed to be integrated into a corporate network. Outlook was designed to interface with the OS. And, the ‘express’ version ships with the OS, and the full version ships with Office … so its essentially ‘free’

    Thunderbird, while a technically better email client, lacks these things. Last time i checked (about 3 weeks ago) its /still/ lacking a complete mapi interface. This is something that a good number of programs require. (Going over everything it is missing is a mute point)

    MS Outlook sucks. no doubt. It was poorly designed from a computer science point of view. Thunderbird is just the opposite. However, tech rarely write the cheques to order software and MS designed Outlook to have all the features that managers and corporate folk want.

    The same arguements hold true for other software. iTunes or Windows Media player. Which is automatically updated and patched via Windows update, thus requiring less time to maintain? (Yes, windows updates can be automatted fairly easily, even on a locked down-secured computer ;-) ) Media Player is cheaper to maintain, it is integrated into Windows and IE.


    I suspect a lot of people are still where I was a couple years agolooking at Mozilla and saying, whats the big deal?

    I’m still saying that, and i’ve been using it off an on for years ;-) I don’t like Mozilla. Its big and bulky. On windows I like Firebird, on Linux and MacOS X I do not. On linux I prefer Galeon. While it has some bugs I find that it fits better into my work flow than Firebird. On MacOS X I use safari, because of that integration with the OS. It just works nicer than the alternatives.

    The only way that you are going to see people start developing more for Firebird on windows is if you get it bundled with Windows .. then Plugin authers would start developing for it as well (another stumbling point). Because it is Open Source, you could redistribute it with your applications. You’d almost have to because very few people will go out and download it. Even coworkers of mine (In a Computer Systems Office) won’t really use Firebird or Mozilla. They will use it for a day or 2, come across a site that only works with MS IE or that requires a plugin that only works in MS IE and switch back to MS IE. Better to have one browser than switch between two, right? (right! should be the resounding answer ;-) )

    Its a huge uphill battle, but it all goes back to design. MS Designed windows around IE. You really can’t seperate the 2 (easily). A brilliant Design that has locked people into using IE … whether it is the best choice or not.

  4. What if we step back out of geekdom and look at this whole thing from the eyes of your average, middle-of-the-road computer user.

    “IE is what everybody is using. It’s not broken, why switch to Mozilla? IE has so many more people who develop for it, it must be good. It’s Microsoft, so I trust the brand name ['Oh yeah?! Some people like blood sausage, some people are stupid.' - Groundhog Day]. I’m not used to the way Mozilla looks, so I don’t want to use it. Wait, how do I install it? If I can’t find the link on their website, I won’t download it…”

    These are the nags that developers may hear from the masses. Why bother learning how to develop for the minority if the majority doesn’t want you to. Why fix what isn’t broken (albeit it really is somewhat)? What looks better on your resume?

    A) Developed 6 extentions for Mozilla Firebird
    B) Developed 2 Applications for IE

    Unfortunately I think B is the answer because most IT departments don’t even find Mozilla a browser to consider when making web rules. It’s IE (whatever the current version is, because it’s all they have to work with) and NS4x (that son of Mordor!). I did hear someone mention how bad our work website looks in Mozilla once, followed by – “Yeah, but who ever heard of Mozilla?”… to which I popped out of my chair, gazed over the cube wall and stated, “I’m using it right now.”

    I hear your frustration K. It’s going to take alot longer than estimated before Moz is considered a serious browser contender in the eyes of the masses. I.T. is starting to get it, but the average web user doesn’t know or care about it. Sad huh? How about they ADVERTISE as in TV like MS? I know they are non-profit, but I’d gaurentee you if they had one 30 second spot during the Superbowl that said “Mozilla. Use a better browser”, people would start to take it very seriously. It’s got nothing to do with how hard it is to develop for. It’s simple supply and demand. Sure the supply is there, but the demand just isn’t. :( sadly :(

  5. Guys–please remember that this is a discussion about /development environments/, not the browsers themselves. We can debate the merits of Mozilla over IE, or Mozilla’s botched PR campaign under AOL, or the usability nightmare that is Mozilla 1.x ad nauseum (indeed, the Internet is a sea of such arguments)–but we’d be missing the core issue.

    To say that people develop using Internet Explorer code libraries because Microsoft ships IE with Windows is not a valid argument. That’s like saying that people don’t write code using Borland libraries because Builder doesn’t ship with Windows. That’s silly: when developers ship Borland-built products, they’re shipping binaries–all of their libraries are built into the products that they distribute.

    Having said that, let me anticipate an argument. You might note that IE is bundled into Windows and its APIs are exposed in such a way that developers can easily use the IE engine in their applications with pain-free procedure calls. Thus, developers are keen to use IE’s engine in their applications to render web-based content. You’d have a good point, but you’re still missing where I’m trying to drive this discussion.

    Though the libraries may be included in Windows, a developer can’t USE them unless he or she finds a development environment capable of referencing those libraries. But, NO development environments–and I’m talking about compilers, really, not just text editors–come shipped with Windows. Not Microsoft Access, not Borland Builder, not Microsoft Visual Studio, not Eclipse, not Mozilla, or even emacs. Developers ALWAYS have to go out and acquire those tools, sometimes for a lot of money.

    So the question remains: why would thousands of developers choose to write their applications in tools that they need to pay thousands of dollars to use? In particular, why would these developers choose these pricier alternatives when Mozilla provides opportunities to build flexible software in a language that anyone who has written a website can understand?


  6. Ken Said:
    why would thousands of developers choose to write their applications in tools that they need to pay thousands of dollars to use?

    You answered your own question with:


    Ken Said:
    Thus, developers are keen to use IEs engine in their applications to render web-based content.

    Developers want to use what they are going to make the most from. They are much more likely to make money using the native API’s, and the software bundled with Windows over 3rd party software which can litterly change overnight. Products developed for Mozilla 1.0 aren’t gaurenteed to work with 1.5, thus more development time is needed. If the product doesn’t work during that stretch of time they are likely to loose customers to the IE product which changes much more infrequently.

    MS is also famous for, argueably to a fault, of maintaining backwards compatability with previous versions of their software. A developer can assume, for the most part, that a product developed for IE 6.0 will work under 6.5 (or whatever).

    You can argue that this isn’t the case, since Mozilla beta’s are freely available to everyone … however, we then go back to the development time involved. What if plugin support breaks between 2.0rc-29 and 2.0rc-1089? They have to do all that development work again, costing more time (== money), and still there is no garentee that it will work with mozilla 2.0 final.

    Hobbiests are a different beast entirely, and you will likely find that many hobbiests have aquired MS Development tools for free, thus negating the whole cost for development software arguement at all and focus on which is easier to develop for. Again, I argue that it is easier to develop for IE because, over time, it take less effort.

    I completely agree with you that people should be consentrating on Mozilla development over IE development. There is little to no innovation in IE, no new features except security updates, bad standards compliance, etc … The reasons not to use IE are limitless.

    Unfortunately, there are those couple pressing issues why one /should/ use IE over Mozilla. And all those issues have to do with MS Branding, Bundling, the native api’s, etc …


    Ken Said:
    In particular, why would these developers choose these pricier alternatives when Mozilla provides opportunities to build flexible software in a language that anyone who has written a website can understand?

    Because the people that maintain websites aren’t developers.

    IDE’s and programming langauges aren’t hard to learn once you understand one language. Learning a 2nd, 3rd, 17th, 29th language doesn’t take all that long. With that in mind, I don’t think the answer to your question has anything to how difficult it is to develop for one browser or the other. I think it all goes back to how easy it is to start development, maintain your product over time, and what will be the easiest for your customers to install and use; which all points back to MS IE, at least for windows.


    Ken Said:
    To say that people develop using Internet Explorer code libraries because Microsoft ships IE with Windows is not a valid argument. Thats like saying that people dont write code using Borland libraries because Builder doesnt ship with Windows.

    This isn’t a good comparison. A better comparison would be, “People don’t develop for GTK+ on windows because it doesn’t ship with windows.”

    GTK, TK and QT are all MUCH easier to develop for than native windows API. I use GTK and TK on windows all the time to whip up little gui applications because it takes a fraction of the time compaired to Visual C++, and the tools are free. BUT, which is better to use … tk, gtk, or windows native API? This question is almost identical to what you are asking about why people develop for IE over Firebird or Mozilla.

    Altp.

  7. Is that something instrinsic to Mozilla platform slowing adoption as a development enviroment? I think this is a very interesting question and also very hard to be answered, because different issues come into play.

    But you are wrong stating IE vs Mozilla diffusion as browser doesn’t count. It counts even more for Mozilla, since it has no o.s., nor ide, nor external api behind. Awareness of this new development opportunity is thus strictly linked to Mozilla adoption. One probably start hacking Firebird or making plugins, before considering xpfe toolkit for standalone applications.

    Well, if we consider this point the whole situation is probably going to get better. While tha average user is still very far away from replacing IE, power-user, like web developers, are openly supporting it right now. And since the springing up of Firebird also frequent surfers, those which use the pc a lot but not necessarely develop, are considering the switch.

    So I do thing that things are going to change, although slowly, as a result of the changing of surrounding context. Gre will surely help also ;)

  8. I still think, even with your clarification, that it’s about majority usage. That’s what drives development of anything. Does anyone remember VHS vs. BETA? Was not BETA better in /every/ possible way? Better resolution, longevity, time per tape, quality, etc. Why did VHS surpass, rather /bury/ BETA? Majority usage. You will /still/ find professionals who use BETA equipment. Professionals know better. But in te end, whn that wedding videographer gives the consumer a tape, he’s transfered the thing to VHS (from BETA). It’s the same as developing for Mozilla, then realizing you have to re-develop everything for IE because people won’t use it otherwise.

    This was an analogy. Nobody rebute it with DVD comments please. I know digital video is the way to go /now/, but for the sake of my point, pretend it doesn’t yet exsist.

    - Slightly related… Somebody please post the Style Switcher plugin for Firebird again! It’s not comming with my new installs of Firebird and I miss it! :( -

    (here I am making the antagonistic point while asking for the protaganist’s hope… :) )

  9. A forum has recently opened: http://www.xulplanet.com/forum/

    Anyway Philip Wilson is right and some have drawn similar conclusions in a poll on the same subject: http://www.xulplanet.com/ndeakin/article/218?show=c#comments

    But while xul can do a lot to mimic a PHP like community involvement, it is worth noting that xpfetoolkit starts has a Mozilla internal project, specifically aimed to Mozilla needs. While PHP is a general purpose language. Also xpfetoolkit is a collection of technologies, whereas PHP give access to to really specialised libraries through a unique syntax and a basis of core instructions.

  10. Jai, the style switcher (the little crayon box in the bottom left corner) appears to be in the nightlies. It only works with sites that properly use the <link rel=”stylesheet” … > tag in their header. I don’t do that here, because WebTV takes that as an invitation to try to use its shabby CSS implementation. Since my Mom has WebTV, I know of at least one user who wouldn’t be able to use the site. :-P

    I would recommend the latest windows nightly, anyway, though:

    http://ftp.mozilla.org/pub/mozilla.org/firebird/nightly/2003-12-02-08-trunk/

    It has a new downloads component that makes use of some clever UI ideas like transparency. I found this out from MozillaZine:

    http://www.mozillazine.org/talkback.html?article=4038

  11. Whenever I reinstall with a nightly, I seem to loose all my bookmarks/plugins/etc. Even doing it as they say to… :(

    I’ll try again, I guess. :P

  12. Well, here’s props to Mike’s point:

    “Products developed for Mozilla 1.0 arent gaurenteed to work with 1.5, thus more development time is needed. If the product doesnt work during that stretch of time they are likely to loose customers to the IE product which changes much more infrequently.”

    I just got the new nightly, which gave me my style switcher back (yippie!), but has locked me into a cruddy looking UI. almost all of the Themes for Firebird are not compatible with Nightly Builds or Version 0.7

    Ugh… The plain UI is so ugly… But it’s still better than using IE!

  13. Well, there is now the XUL Planet forum on http://xulplanet.com/forum/ but this isn’t really enough. There has been a good deal of work to date on XUL, but it’s all very thinly spread across the web, with some (especially if it’s on mozilla.org) being desperately out of date.

    Most of the content of the forum is still all the most basic stuff though, too. Generally people can rely on any number of articles on sitepoint, oreilly, developerworks, whatever to steer them in the right direction, but even the recent “Creating applications with Mozilla” on O’Reilly (you’ll have to Google I’m afraid) is only the simplest of the simple. For those who want to write real applications in their favourite programming language, there’s nowhere to go.

    XUL Planet is really the only place anyone should look if they’re looking for an online XUL resource. If you want real code, your best bet is to download the source for an extension or some app already out there and take it apart. But if you do – *please* share your results with the rest of us!

    Maybe we need to badger Kevin Burton (he of newsmonster) into writing a “how to write proper applications with Mozilla” article?

  14. Pingback: Phil Wilson