
"David" == David Sankel
IMHO, there need not be a list of backends supported to make a feature stable. Simply one. Since we are working with Turing Machines here, we know that, in general, if it works for one backend it is possible to implement it for all backends.
I beg to differ. While there may be some Turing machines involved, they are largely irrelevant. The much more important constraints are those imposed by the designers of the platforms we wish the GUI to work on. These constraints are documented in the API, the design guidelines (i.e., those that specify what a 'native look and feel' is) and in various less formal forms such as existing applications, tutorials, etc. The sad news is that somewhat arbitrary decisions (as well as perfectly sensible decisions) by the GUI library designers can have an enormous impact on how easy it is to implement something and an even more significant impact on whether the result will have a native 'look and feel'. The sadder news is that people programming to these constraints or designing GUI APIs to these constraints often forget that there is another way. Only by implementing and testing the design on multiple GUI platforms can we really achieve a portable design. -- Alastair Reid