Full Article Attached MozillaZine on Skins

Tuesday April 11th, 2000

I have decided to put my own head on the chopping block and weigh in on the Mozilla skins and native widgets debate. To read more, click "Full Article" below.

#11 User Interfaces

by hubick <>

Tuesday April 11th, 2000 9:41 PM

You are replying to this message

First let me state that I love Mozilla, and I think they have made reasonable design choices given the constraints.

Now, in general (not pertaining specifically to Moz)...

I think all apps on an OS should look the same. You don't have to be a useability expert to know that continuity is a good thing. That is not saying I am againsed skin/themeablility, if I want to theme my desktop, fine, but all applications should adopt that theme. If someone comes up with some new OS which uses a major shift in UI design paradigm, that is great. I mean, the Mac is the only platform to do things slighly differently. What happens when someone does a radical departure to a holographic UI and things really start to work differently. Of course, all applications for that platform should follow it's way of doing things. If I as a developer write a Mac, Windows, BeOS, Gnome, Kde, motif, whatever app, I feel it is my duty to follow that platforms design guide. When you think about it this way, the differences in UI's from platform to platform are going to become so great, it is not really possible to write a truly cross platform application. I think, theoretically anyhow, I am againsed them.

Then there is reality.

Ignoring reality, I would like to see Mozilla concentrate soley on Linux + GTK. I would like to see it "integrated" with the linux OS in the same way IE is integrated with windows (not really). I would like to see Mozilla mesh really well with Linux. I would like to see it become a core part of Gnome. Hell, I would like to see Gnome be implemented using Mozilla. I think Microsoft and their crooked business practice has made competing with IE on Windows a losing battle. Being how much I support everything mozilla stands for, I _hate_ the fact that I like using IE5 a lot better under windows. The sad fact is, it just works better with the OS than mozilla does. By concentrating on one platform, MS is able to leverage ties to windows to make IE better, such as preloading DLL'S, and tying into the filesystem, etc, etc, etc. It's no one major thing, just a lot of little ones. I would like to see Moz do this for Linux rather than what I feel is wasting time with Windows (lost cause). I would like to see MS become _fully_ standards compliant with IE so that Moz isn't _needed_ on windows. Personally, I don't have a problem with Microsoft having a complete monopoly on Windows and all the software that runs on's their platform, let them do as they please. In the meantime I will work to make Linux better. I ultimately think IE will take over windows, if it hasent already, and Mozilla will end up finding life as the primary browser on Linux (aka the New World Order, which will outlive windows).

I realize there is a commercial reality here though. I also realize there is a need for a good browser on every platform, windows and other. Being a big standards guy, I really want to see this happen, and I really want to see Moz happen. It is a commercial reality that Moz needs to support windows. We should be thankfull their is cross platform support at all, seeing as how I can't come up with nearly the _immediate_ business justifications for that.

So where does that leave Moz? In a bad situation. Providing _true_ (you can't tell it from native) cross platform support is a software engineering holy grail. As a full time Java programmer, I think I have seen the best attempt, but it still isn't there. I think Mozilla has done a great job considering.

The world is really all about layers upon layers of API's. Many of these high level api's are what Mozilla is implementing, such as DOM. Mozilla iteself though needs to be layers upon lower level API's, such as C++ and Posix. I think what I would like to see the most out of this, and any other project for that matter, is the continued extension of standardized cross platform low level API's. It is that which has much broader positive implications for the computing world in general, ie extending the C++ STL. Mozilla needs things that there are no standard API's for. As we all know, they have now for the most part created these API's and an open source implementation, which if you ask me, is the most exciting outcome of this project.

I think mozilla has created too many API's though. I would rather see complete reliance on the C++ STL and posix threads than NSPR. If you want moz on your platform, implement C++ and posix. That would have a much better long term effect than spending time porting NSPR. It makes me VERY happy to see documentation stating that this is the way Moz is headed.

Stangely enough, with all the API's created, there isn't really an AWT (abstract windowing toolkit to borrow from Java nomenclature). What I would like to see in Mozilla would be: An XPIDL API definition of all UI controls, and a factory for creating them. And perhaps a default XP implementation of those control API's, as we have now, using Mozilla itself. This would make it easy to provide an alternate UI implementation in the future. Then the GTK people could look at that API, and it's requirements, and add them for their next major version and implement a Moz factory.

Actually, take that one step further, I think Moz should screw providing interally implemented cross platform support, and just concentrate on defining the cross platform API's it needs from the OS. That way, say Apple, could look at the Moz project and say..ok, here we need to implement an STL api, NSPR (or posix) API, an IMGLib API, a UI toolkit API, an NetLib API, etc...and they (or someone else) could implement these for each platform. I think moz should just worry about defining these API's, and say, the windows implementation, and let others take care of the ports, as would be sure to happen (and has).

Anyhow, that's more than enough out of me :-)