With the epic rise of client-side web technologies, web UIs have long surpassed the creativity, quality, and user experience of desktop applications. In the historic old days of simple HTML web pages, desktop applications still ruled both worlds of user experience and functionality. Today is a different story. While the web implemented new server-side and client-side technologies to improve functionality and user experience, little has changed in the world of desktop GUIs. In fact, with such advancements as AJAX and client-side RIA plug-ins (such as Flash and Silverlight), web application functionality quickly catches up with their desktop counterparts. Have you recently looked at “Google Docs”?
It’s not that technologies for desktop application UIs haven’t evolved. Just the opposite; with the release of the Windows Presentation Framework, Microsoft filled the gap and created a very powerful tool for the creation of rich UIs. In fact, with WPF, the developer can engineer a user experience that matches and exceeds the web GUI possibilities. WPF also makes it easier to implement some functionality. These are all great things. I should also mention that all these features are largely transferable to web applications through the Silverlight plug-in. In this way, any advancement in windows application GUIs also produces (generally) an advancement in RIAs. That aside, the Windows Presentation Framework has really improved windows desktop application potential.
Despite this advancement since its release in Nov. 2006 and with subsequent improvements in 2007, 2008, and 2010, very few desktop applications take any real advantage of the new possibilities. While a webpage might display images, videos, and animations, desktop applications largely remain the old and boring standard: Resizable rectangles with smaller non-resizable input geometry. Perhaps I compare the two unfairly–apples and oranges as they say. After all, the web serves a much different purpose than the desktop. Or does it? After all, today we all have (FREE!) access to web-based programs for writing documents, composing spreadsheet, authoring slideshows, and drawing simple illustrations/diagrams. This is just to name a few from one provider: Google.
So just as web-developers worked tirelessly to engineer desktop-application functionality into the web, so should application developers try to emulate the user experience of (the best of) the web. With WPF, they now have the tools and separation of concerns to do just that. Just a thought.