Here are a number of thoughts on web applications, inspired from reading the recent discussions of the W3C Workshop on Web Applications.
- The people who will be making the user interfaces for web applications in the future will be the same people who currently make the user interfaces for web sites today.
- The people who make the user interfaces for web sites today are not very technical and frequently have non-technical backgrounds. The people who do have technical programmer-type knowledge are confined to writing server-side code.
- Most of the programmers who work on a web site are young (20-35), the younger of which have no experience working on software that isn't for a web site. Usablity and accessibilty are generally poorer on web sites and will continue to be so as less of the required expertise to improve usablity and accessibilty can be transfered to new developers from experienced developers, since such experience doesn't exist.
- The technical department (engineering group as it's often called) working on the server side code tends to prefer to leave the user interface of a web site (the HTML and CSS) to the other group (the web designers) as these tasks do not require programming skill. In the future world of web applications, the 'engineering group' will likely do the same.
- No existing web designer currently nor ever will understand any technology that begins with the letter X. Thus, if the people who will be making web application UI (the web designers) don't understand these technologies, those technologies will have a hard time getting anywhere.
- Technologies that are seeking a market are very likely to fail. Technologies that have a market seeking it are very likely to succeed. The important market is always the end user and never those making the implementations or the tools. New technologies or specifications with few to no implementations are of the former category. The latter tends to have less well-defined specifications, is poorly implemented or is less powerful, yet since there is demand for it, is actually used. Consider HTML, or email, both of which just appeared and then defined in more detail over time.
- Developers have a tendency to believe that an application that requires communication between a client desktop machine and a server is best run within a browser, leading to applications that require a browser on a specific platform to operate, despite that development costs might be lower and the application would have a better user interface if it were written directly using the platform toolkit.
So what will generally happen in the future is that client-server applications will be run in a browser and they will be just as awful to use as they are today.
Perhaps I'll have more thoughts later.