I spent a huge slice of my life writing toolkits for graphical user interfaces. The primary tension in that work is between supply and demand; the software engineering knowledge available and the interfaces you wish to build.
Strong opinions on both sides. Engineering loyalists prefer more objects in the design. Have a chart? Give every point on a chart it’s own object. Customer loyalists wanted it implemented quickly (more objects can help there) and very very fast (more objects are no help there). A more difficult tension from the customer side the desire for pretty, easy, and powerful.
Both camps have factions within; the most striking one is between professionals and practitioners, e.g. those who study the problem and those who build commercial systems to actually solve the problem. Few commercial system builders are aware of the work done in labs on constraint based UI tool kits. Intellidraw was a shining exception. Few people working in the labs have a clue about the elegant architecture of the Apple Newton’s UI toolkit.
I haven’t working in this domain much for more than a decade now. I moved on. The UI toolkit design space seemed to be largely mined out. Worse, powerful network effects had locked in solutions patterns.
I moved onto the open source puzzle, i.e. how to leverage the infinite pool of talent on the other side of the internet. A much richer vein of opportunities to mine. Still is!
Has the academic UI community come to this new party? The answer appears to be no and that is so weird!
I don’t see these applications through the old paradigm. Model on one side and user on the other and the designer’s job is to fill the gap with view & controller. Meanwhile the researcher stands off to one side attempting to make the interaction more … whatever, more efficient, more fun, more smooth.
These days I see an artifact on one side and a group on the other. The artifact plays a key role in the group dynamics; as a point of rendezvous, the manifestation of it’s common cause. View/control is no longer a particularly useful way of thinking about that problem. I have other ways I now think of it: coordination, community rituals, games, limited warfare, etc, etc.
While there are numerous practitioners of this new craft with thousands of examples of wonderful systems already built (source control, wikis, forums, bug trackers, IM systems, etc.). So where, damn it, are is the professional faction? This train left the station a while ago; and with a few very specialized examples it looks like they missed the train entirely.
Oh I don’t know, there is a lot of interest in collaborative user interfaces, for instance in the CSCW world. Open source seems to get a lot of academic attention from economists and software engineering; not so much from UI world (but then FOSS has until fairly recently concentrated more on back-end infrastructure than user-facing artifacts).