What are the Open Source alternatives to WPF/XAML?
- by Evan Plaice
If we've learned anything from HTML/CSS it's that, declarative languages (like XML) work best to describe User Interfaces because:
It's easy to build code preprocessors that can template the code effectively.
The code is in a well defined well structured (ideally) format so it's easy to parse.
The technology to effectively parse or crawl an XML based source file already exists.
The UIs scripted code becomes much simpler and easier to understand.
It simple enough that designers are able to design the interface themselves.
Programmers suck at creating UIs so it should be made easy enough for designers.
I recently took a look at the meat of a WPF application (ie. the XAML) and it looks surprisingly familiar to the declarative language style used in HTML.
It's apparent to me that the current state of desktop UI development is largely fractionalized, otherwise there wouldn't be so much duplicated effort in the domain of graphical user interface design (IE. GTK, XUL, Qt, Winforms, WPF, etc).
There are 45 GUI platforms for Python alone
It's seems reasonable to me that there should be a general purpose, open source, standardized, platform independent, markup language for designing desktop GUIs. Much like what the W3C made HTML/CSS into.
WPF, or more specifically XAML seems like a pretty likely step in the right direction.
Now that the 'browser wars' are over should we look forward to a future of 'desktop gui wars?'
Note: This topic is relatively subjective in the attempt to be 'future-thinking.' I think that desktop GUI development in its current state sucks ((really)hard) and, even though WPF is still in it's infancy, it presents a likely solution to the problem.
Update:
Thanks a lot for the info, keep it comin'. Here's are the options I've gathered from the comments and answers.
GladeXML
Editor: Glade Interface Designer
OS Platforms: All
GUI Platform: GTK+
Languages: C (libglade), C++, C# (Glade#), Python, Ada, Pike, Perl, PHP, Eiffel, Ruby
XRC (XML Resource)
Editors: wxGlade, XRCed, wxDesigner, DialogBlocks (non-free)
OS Platforms: All
GUI Platform: wxWidgets
Languages: C++, Python (wxPython), Perl (wxPerl), .NET (wx.NET)
XML based formats that are either not free, not cross-platform, or language specific
XUL
Editor: Any basic text editor
OS Platforms: Any OS running a browser that supports XUL
GUI Platform: Gecko Engine?
Languages: C++, Python, Ruby as plugin languages not base languages
Note: I'm not sure if XUL deserves mentioning in this list because it's less of a desktop GUI language and more of a make-webapps-run-on-the-desktop language. Plus, it requires a browser to run. IE, it's 'DHTML for the desktop.'
CookSwing
Editor: Eclipse via WindowBuilder, NetBeans 5.0 (non-free) via Swing GUI Builder aka Matisse
OS Platforms: All
GUI Platform: Java
Languages: Java only
XAML (Moonlight)
Editor: MonoDevelop
OS Platforms: Linux and other Unix/X11 based OSes only
GUI Platforms: GTK+
Languages: .NET
Note: XAML is not a pure Open Source format because Microsoft controls its terms of use including the right to change the terms at any time. Moonlight can not legally be made to run on Windows or Mac. In addition, the only platform that is exempt from legal action is Novell. See this for a full description of what I mean.