For the last 8 years, the GTK+ and GNOME projects have been working on open-source technologies for building desktop applications. In the recent past, there has been increased interest in web applications and in sharing technologies between the development of conventional web applications and of desktop applications.

We believe that an attempt to standardize a complete toolkit with all conceivable controls needed for any application would be a mistake; rather standardization through the W3C should be of basic technologies that allowing interoperable components to be developed under whatever development model is appropriate. In particular, we feel that the open-source development of components working on top of a standardized platform will be an effective way of developing a rich web application platform. It may, in the future, be interesting to standardize some of these overlaying component technologies, but as long as the components can be distributed through the same channels as the applications this is not necessary.

Standardized technologies should not rely on details of the underlying platform; standards that cannot be implemented on a range of platforms or require huge amounts of infrastructure will have trouble succeeding in multi-vendor and open-source environments. As a corollary to this, the dependence on existing W3C standards should be kept to a minimum where there is a good technological match rather than bringing in every standard is technologically related. But this should not be interpreted that a wrapper toolkit (AWT-like) approach is correct; any approach that attempts to wrap existing components without modification will either end up either being a very incomplete subset or alternatively will make assumptions about the toolkits that are being wrapped that are not accurate.

It will clearly be necessary to have applications that adapt to fit in well with different desktop environments. If we reject the approach of a wrapper toolkit that simply wraps native controls, how do we achieve this integration? In the open-source community, we've built up quite a bit of experience in solving these issues; GTK+ acts both as a provider of this functionality -- on Linux, other toolkits such as the Mozilla and OpenOffice toolkits use GTK+ native rendering calls to render controls that aren't actually GTK+ controls -- and as a consumer: on platforms such as Windows, GTK+ will run with a native look. We believe that similar techniques can be used in a W3C standardized web application platform to provide close integration with a native look and feel without requiring taking a native toolkit approach.

Because of the interest in using a standardized web application framework in open-source areas, we also believe that a very open process is important. Early availability of documents for public review and comments will significantly increase the possibility of wide adoption.

Owen Taylor <> Red Hat