On Wed, 2007-07-11 at 13:21 -0400, Ernesto Bascon wrote: > Having a Mono specific UI library, maybe built on top of the current > implementation of SWF but feeling free to implement new things [not > necessarily compatible with Microsoft's SWF implementation] could add > a lot of value and richness to the Mono library [theming, KDE and > Gnome interoperability, etc.] > > Yes, I know that it is like reinvent the wheel, but also means turning > Mono in a more independent (and thus, complete) platform.
Independent != Complete. Stop thinking about things from the developer perspective, and think about them from the User perspective for a moment. What do you want as a user? Integration. You want all your apps to look similar, behave similarly, *be* similar. For instance, on OS X all apps should use the top menu bar, should properly consume and expose system services (Application Name -> Services, iirc), use the system's appropriate contacts, email, web backends, etc. The same is true for KDE, Gnome, Windows, and every other platform. In theory, you can provide this level of integration with any new toolkit you dream of. In practice, it's a *lot* of work to do this level of integration. So much work that cross-platform toolkits (Qt, GTK+, etc.) will delegate some things to the native platform whenever possible (e.g. instead of custom-drawing a button, asking the OS to custom-draw the button on the app's behalf). (Aside: as an example, previous Java Swing implementations did custom drawing for *everything*. Result: non-native File selection dialog on Windows, applications that wouldn't resize "live" (it would instead redraw when you released the mouse when resizing the app), buttons that wouldn't match your current theme.... Newer versions do more delegate to Windows now, precisely for Integration.) So go ahead and create your new toolkit. Just be prepared to do *lots* of work trying to integrate nicely with all of the existing platforms, OR in never gaining users by ignoring these integration requests. (And realize that this will be an ongoing process, as OS X, Gnome, KDE, and Windows are *constantly* adding new functionality.) It's far easier to NOT create new toolkits at this point, and re-use an existing toolkit. Your users will thank you. (For bonus points, support *multiple* toolkits within your app, so that your app looks native on all platforms. More work, but potentially worthwhile for your user base.) - Jon _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
