Voor elk platform de eigen widgets gebruiken kan niet, om verschillende redenen. Ten eerste is het niet mogelijk om CSS stijlen toe te passen als je platform-widgets gaat gebruiken, ten tweede ben je afhankelijk van de platform rariteiten bij het gebruik van native widgets, zo is een widget op win32 gewoon een window, gevolg hiervan is dat je problemen krijgt met de z-order in je pagina, aangezien de webbrowser verder ook 1 widget is, is het onmogelijk om een native widget 'tussen' 2 html elementen te proppen, ze hangen altijd 'boven' de pagina.
Klopt helemaal.. maar dat blijft beperkt tot de webpagina zelf. Die widgets moeten sowieso van geavanceerde functionaliteit worden voorzien om CSS-stijlen toe te kunnen passen.
Ik doelde met mijn verhaal echter op de widgets van de user-interface die bij de browser hoort en niet bij de webpagina. Mooi voorbeeld is Internet Explorer. Gebruikt in de interface native widgets, maar in de browser uiteraard widgets die te stijlen zijn. Dit geldt ook voor Epiphany, een Linux/Unix browser die gebruik maakt van de liberaries van Mozilla, maar daar een nativa GTK-interface omheen heeft zodat de browser loopt als een trein.
Native widgets zijn prima toe te passen in de menu's, iconenbalk, etc.. Platform specifieke rariteiten los je op door voor elk platform een library te maken die een aantal generieke functies ondersteunt, zoals venster-functies, menu's en buttons. Hiermee wordt een scheiding gecreeerd tussen platform afhankelijke code en zeer gemakkelijk portable code.
En zodoende zijn al die verschillende projecten, die allemaal hun eigen user-interface presenteren, ook niet meer nodig. Firefox is immers onstaan uit het verlangen een snellere en slankere browser te maken. Mozilla is echter slanker en sneller te krijgen zonder dat er ook maar iets wordt afgedaan aan de functionaliteit, zeker als je ook setups uitbrengt waar alleen de browser inzit. Op die manier wordt Firefox min of meer overbodig. Extra functies kun je in modules stoppen, zodat een basis installatie van Mozilla voor iedereen simpel en snel is, en de geavanceerde gebruiker kan modules bij-installeren. Heel wat doeltreffender dan al die projecten naast elkaar die eigenlijk allemaal hetzelfde doen: Een webbrowser aanbieden met de Mozilla rendering-engine.