HTML, CSS and JavaScript is the future for GUI programming. This is one message I got out of the Scandinavian Web Developer Conference this week.
It used to be difficult to create web pages that looked and behaved like desktop applications. But since web applications became more popular, the tools and practices improved. Today, using web technologies to make user interfaces may not only be as easy as using a GUI framework for desktop applications. It may even be easier to use HTML and CSS for the GUI design and JavaScript for the logic. Think about it: There are probably more people that know HTML and CSS than there are people who know how to create a GUI in Java Swing, Qt, Adobe Flex or .net. There is plenty of information online about HTML and CSS. There are good libraries that facilitates making application-style GUIs in HTML.
And when it comes to JavaScript, it is becoming a mature language. Large complex applications are written in JavaScript. It's not only about mouseovers and drop-down menus any more. FireBug for Firefox and Google Chrome's debugger are some of the great development tools avaiable. The edit/run cycle is very short. And as far as programming languages goes, while not being perfect, JavaScript is a quite nice language.
Then there's the platform independence, which has become even more important after Microsoft lost their total dominance on user-facing operating systems. They have lost some users to Mac, but today there are many other platforms that people use every day. I'm thinking about mobile devices, which is a diverse market with several platforms that have little in common except one thing: They all support HTML, CSS and JavaScript in their browsers.
Even though it is problematic to create a web page that renders exactly the same on all browsers on all operating systems, HTML+CSS+JS has achived something that no other framework has done: It has good portability while allowing you to create beautiful and sleek user interfaces.
Web technologies are definitely worth a look when considering what user interface framework to use for your next project. Even an off-line desktop application, or a mobile "app" may be conveniently implemented in HTML, CSS and JavaScript.
Perhaps I need to sleep off that cool-aid from the conference now. Anyway, thanks to Peter Svensson for arranging and to the speakers for the inspirational talks.