Friday, June 02, 2006 - Posts

User Interface Cross-Roads

We've hit a cross-roads. If you had to decide, today, which technology to use in order to create the user interface for a consumer application, which direction would you go? It seems that more options are being added to the list every other week. Lets look at technologies available today:

1. Win32 App, developed in VB6, C++, Delphi etc.
2. .Net WinForms, smart-client
3. .Net WinForms running in a browser deployed with ClickOnce. Admittedly not much different to above, but you do have to take special precautions with how you're interacting with the system to ensure you don't step outside your privelege box.
4. .Net ASP using server-side controls and viewstate.
5. Atlas with ASP.
6. Standalone Atlas with no ASP side.
7. Plain old HTML and JavaScript.
8. Flash.
9. Java. Yes people are still developing in client-side Java.
10. Microsoft's Script# - developing HTML/JS with C#.
11. Google's Web Toolkit - developing HTML/JS with Java.
12. WPF - not released yet, but something many companies are using already and would be stupid to ignore.
13. WPF/E - unless you're targeting multiple platforms (on, like, the Internet), then you need to write to a subset of WPF with JavaScript as your language.
14. Access. Ok I had to mention this because believe it or not you can still create those forms-over-data type apps using Access without having to touch a line of code.
15. DOS. Ok maybe that's taking it too far.

Alright I'm sure there are a lot more options. But it does go to show you that the simple question 'what should I write this in?' isn't quite so simple to answer. The front-runners would have to be Microsoft and Google, but which do you bet on? Microsoft may even be competing with themselves to take developers away from WinForms and ASP and move them to WPF.

These are difficult times for developers. Hopefully in a few years the path will seem clearer, in the meantime all we can do is take a gamble.