11:55 AM I'm tired of updating Mozilla
The Mozilla Foundation has finally managed to release an alpha version of a later release before the previous release. What does this mean to end users? It means confusion as people don't know what to download. What does this mean to people who want to file bugs? It means that unless you've been involved with the project for a while, you have no idea what you should be testing. What does it mean to extension authors? It means that your users will be using 25 different versions of Mozilla. Is there a way to test your extension or theme with all of these? No. Same goes with web sites actually. They've been known to break between versions. I know of one web application that only worked on Netscape Communicator 4.06 and no other version. Of course, if you're an extension author, you could try only building only to the stable API releases. Do you know which the most recent one is? (Hint: The version number begins with 1 and ends with .4) I doubt many people knew that, since this isn't indicated anywhere. But, of course, don't file bugs on it, since it's too old.
In the world of Mozilla, software that was released two months ago is considered old and outdated. For other software, two months is considered new. If your file a bug on a build that is a month old, you get chastised for using an old product and the bug often gets marked invalid. Sure, some bugs are invalid (or duplicates) since they were fixed recently; many others aren't.
I stopped upgrading Mozilla a long time ago, opting instead for an occasional update. I used Mozilla 1.4 up until a month after 1.6 was released. I could have updated to get a few features or security fixes, but I didn't. Why? I'm tired of updating software. And just for the Firefox crowd, I'm also using Firebird 0.7 (still the old name). Why don't I update? I'm tired of updating software. Will I update to 1.7 or 1.8 or Firefox 1.0? I don't know. Perhaps if it's the one or two days a year when I'm not tired of updating software, I will.
I used to get excited when a new version of something arrived. I don't any more, as the new version is more of the same. Ordinary users aren't going to update software either. (People who have at some point posted a message on Mozillazine.org aren't ordinary users in this sense). They're not going to update unless there's a compelling reason to do so. And that reason has to be more than my urge not to update since I'm tired of updating software.
This is also why people don't switch from IE. Popup blocking is the only real advantage that any end user would care about, and that advantage is going away with the next IE update. Mozilla has lots of great features like tabs and type ahead find and DOM inspectors, but the reality is that advantages don't sell a product. Actually, the disadvantages of the competitor are what makes people switch. An IE user might say "Look at all these popups and ads; this makes it very difficult to use; perhaps there's something better out there." Then, they might start using Mozilla (or Firefox). However, I can't imagine any ordinary user saying. "Look at how I have to select the Find command and then type in what I want to find on the page. I wish there was a way I could find text by pressing the slash key and then typing what I want and having it find the text incrementally." No user thinks this way, since most people aren't creative enough to think of the easier way. You have to show them the easier way. And make sure to show them, since ordinary users won't know which of the many Mozilla versions to try.
I'm sure there's some reason for having a new release or pseudo release every month. Perhaps it's for QA purposes so that people who aren't tired of updating software will always get the latest versions and test them. Maybe it's to get more feedback as people who aren't tired of updating software will always get the latest versions and provide feedback. Maybe it's for marketing purposes so that slashdot and other tech news sites post articles about the newest release. I'm not sure about the latter. Mozilla has so many releases that it hardly qualifies as news any more. Reporting about a Mozilla release is like reporting that the month ended.
In my opinion, if there is still a need for frequent releases, why not make the version numbering more sensible and release ten alphas and betas, then release a final build once a year or every nine months, like most other sofware? I'm sure someone will tell me that I'm all wrong, but, as an end user, I'm tired of updating software.
8:42 PM Investigating the XUL Template Builder
A few weeks ago, someone was asking some questions about XUL templates. In the process of answering, I had a revelation and finally understood completely how templates work. I also decided it was finally time to try to understand the template building code. This code is rather complicated, involving about 20 - 30 different data structures. I still don't understand what all of them are for, and I don't think it's possible that anyone ever will. I think the complexity comes from the code needing to be scalable for templates with lots of rules and conditions, and ensuring that only the necessary parts need to be reevaluated. Most templates only have a few consitions so I'm not convinced that the complexity is worth it. But then again, I wouldn't be able to tell for sure without ripping it all out and changing it, which I don't think I want to do.
I am, however, more sure that the template builder actually does work as it's supposed to. Any problems people have are caused by errors either in RDF or template syntax. Common problems include using the wrong RDF content type, using the different parts of the RDF triple incorrectly, or putting the wrong values or variables in the template itself.
That said, I'm in the process of creating some patches for the template builder, one patch to print template syntax errors to the JS console, and another nice patch for the enhancement bug 86435.
6:54 PM XULPlanet has returned!
After a long time off, XULPlanet.com has returned in all of its glory!
Well, almost. There's a few things that don't work quite right yet. The forums aren't up yet for instance. These should be fixed soon.
In case you were wondering, the old host decided to suddenly go out of business. Fortunately, we were able to make a backup of all of the content and move it onto a new host. We got numerous requests to help and I'd like to thank everyone who offered. However, we decided to go with a dedicated machine for XULPlanet. With a dedicated server, this should eliminate bandwidth issues such as those we had in February. I might even be inclined to provide downloads of the XPCOM reference. Or, perhaps I should go back to some XUL templates work.
11:44 AM Huge XULPlanet.com Changes!
I haven't been posting much lately. That's because I've been busy working on lots of big changes and improvements on XULPlanet. Here are some highlights:
- I have personally gone through every XUL tag, attribute and property and combed through the XBL bindings and C++ code that implement them, to ensure that the element reference is complete and accurate.
- The element reference now lists inherited attributes and properties along the side.
- The element reference lists the types of most attributes and properties as well as the return types of methods.
- The element reference now lists some common style classes that can be applied to elements. These classes work in at least the Classic and Modern themes and should in others as well.
- Two new sections about commands and command updaters have been added to the XUL tutorial.
- The tutorial sections on focus, and broadcasters have been reworked.
- Sidebars have been added to the reference pages for better navigation.
- Comments are now available on the XPCOM reference and the new scriptable object reference.
- An index of frozen interfaces has been added.
- Components in the XPCOM reference now list all the methods of all the interfaces that they implement. For example, see the reference for the local file component.
- Interfaces now provide a cross reference of other interfaces that refer to them, either via a property, a method argument or a return type. For an example, see the nsIRDFDataSource interface.
- A bug where unscriptable properties were not marked as such in the XPCOM reference is fixed.
- The main page has been reworked a bit to make it clearer as to what information is available.
11:13 AM Software Economics Poll Results
After looking at the results and comments from the last poll, I'm not sure that people really understood the choices. The Linux choice was inspired by comments made by Microsoft employees and others, where Linux was being compared to communism on the basis of it being free and it promotes sharing of code. The second choice was centered about the idea that packaged software is generally not given to people to use, but licensed for use. In this case, people are not given any private property; it is instead owned by one collective body, in this case, the software developer.
Both comparisons are actually stretching definitions quite a bit. By carefully selecting parts of the free/open source model, or parts of the commercial software model, we can suggest that either is communism. In fact, everything is communism if you really wanted to find a similarity. One could just as easily say that they worked under communism since, at work, one doesn't own anything (their desk, their pens, their other tools,...) and everyone works for the common good of the company.
The point is that free/open source isn't communism. It's a licensing model for distributed software.
By the way when I read Steve Ballmer's line "Linux sort of springs organically from the earth," I wondered if that means that Windows doesn't and is therefore unnatural. See, I can easily stretch things to fit my own agenda.
12:28 AM References Update in Progress
I'm in the process of making some changes to the XUL element reference and XPCOM reference. For instance, I'm including more details on the components pages. If anyone has any suggestions for information they would like to see on the reference pages, leave a comment.