Mozilla Jumps on 'Lean Browser' Bandwagon
fader writes "Following in the footsteps of fast (and often fantastic) wrappers around Gecko (the Mozilla rendering engine), Mozilla has just released their own lightweight browser, Phoenix. Only Phoenix will still use XUL, the cross-platform markup language used for the current Mozilla interface. Will it still be fast enough to overcome the final gripe about Mozilla, namely that it's just too slow?"
My main gripe is that it doesn't look or act like my other Windows applications. The buttons are different sizes, the keyboard shortcuts aren't the same, and a lot of other things I don't want to think about. If they can skin/change Mozilla's behavior to act just like IE, they'll have a lot of converts.
Now it may be possible if, instead of "widgets", people would come up with some "drawing" code. Some elements are pretty consistent: "draw a raised box", "draw a raised box I can press", "draw it pressed", etc. Then maybe systems could use it, most toolkits have calls like this inside them. Then again, even at this level I worry about a complexity and forced design, for instance the obvious implementations would not let you make non-square widgets, while a non-square one would be complex and could be rightly claimed to be too much overhead.
Also NONE of this has anything to do with enforcing consistent shortcuts between applications. From a programming point of view it is impossible. Imagine that they said Ctrl+C will ALWAYS do "cut". Then they say you must write a program with the function cut() and Ctrl+C will call that and you cannot do anything about it. That is what enforcing a consistent set of shortcuts means (Ignore the fact that you could make cut() do anything you wanted, I'm not assumming malicious programmers here). Imagine now you make up a new function, blorg, and you want Ctrl+E to call it. They know nothing about blorg so they cannot possibly call it. Okay, perhaps there is an interface that says "make Ctrl+E call blorg()". Great but what happens when they decide that Ctrl+E means a new standard (say go-to-end-of-line). Does your program stop working in that Ctrl+E stops calling blorg()? What if you relied on this fact? Or does Ctrl+E still call blorg()? Then you have an inconsistent user interface!
The fact is that ALL systems allow the shortcuts to be arbitrarily arranged. The fact is that programs, especially on Windows, are consistent is because the programmers have an incentive to make them consistent. This incentive is always ignored by the people who keep yelling for "single toolkit".
Phoenix will probably never be as small a download as Opera. You can't cram better standards support than opera into an opera-sized package. We can, however, easily trim another MB or two from our download size without much difficulty. I was able to get a local package down 1 full MB smaller just removing a few test files and unused bits and samples. We're working on some build-config changes that will allow us to pull and build less (we're still carrying the weight of Composer even though we're not using it). I expect that Phoenix could get under 7MB without too much difficulty. But it's not going to get down to the neighborhood (2-5MB) of Opera unless we throw away a lot of standards support like our DOM support and other standards that we just do more of than Opera.
That being said, Phoenix download for windows is about 8.4 MB. Mozilla download for Windows is about 11MB, IE6 typical download for win2K is 17MB. Phoenix is by no means the biggest of that group. Opera is to be praised for it's small download size. I just wish they had the same level of support for other W3C standards as they do for CSS.
--Asa
Mozilla is about web standards, right?
One of the major points about web standards is that a page isn't supposed to look exactly the same regardless of the software used to display it. HTML is not supposed to control presentation. CSS is itself only supposed to be a guide. The sooner we can abandon the obsession with controlling every last pixel the better.