Path: utzoo!attcan!uunet!cs.utexas.edu!tut.cis.ohio-state.edu!purdue!decwrl!shelby!portia!Jessica!stergios From: stergios@Jessica.stanford.edu (stergios marinopoulos) Newsgroups: comp.windows.x Subject: Toolkits & User Interface Deevolution Summary: interface biulder needed Message-ID: <2904@portia.Stanford.EDU> Date: 11 Jun 89 20:54:42 GMT Sender: USENET News System Reply-To: stergios@Jessica.Stanford.EDU (stergios marinopoulos) Organization: Stanford University Lines: 52 My last count showed there exist 6 toolkits and not one user interface builder. I'm really curious how this imbalance came to be. It seems people believe there is *no* difference between toolkit facilities and user interface builder facilities. While I find no fault with the toolkit programming interface, I do not believe that every X programmer should have to learn the intrinsic just to be productive. Obviously I am not speaking about a radically new idea here. The Mac has ResEdit, the Amiga has Power Windows, and the Next has the Interface Builder. With each of these I can create a *complete* user interface and not wright one line of code! Not one. This is simply impossible with the toolkits. An interface builder abstracts the specification of the user interface away from its implementation. It then compiles the specification into an implementation which can, and I dare say should, take on various platform characteristics. Implementations of a user interface specification should be identical regardless of whether it runs on X, MS Windows, GKS, Intuition, Display Postscript or any other windowing system, the same as one would expect C code to compile to equivalent operations on different instructions sets. A windowing system is not an end on to itself for application programmers, rather a vehicle used along the path of implementation. And yet I see 6 different toolkits non of which provide anything substantially better than the next, and not one tool that helps with the implementation of specifications, more over some toolkits even enforce specification. Lets say you have an application that runs on all windowing systems and you want to change or add to the behavior of the user interface. How will you do it? Modify a toolkit by changing or creating a new widget? Wright this code for each window system? On a particular window system will you write code for each toolkit? Who will QA all this work? How many people will it take to add and maintain this? Big and expensive questions indeed! It is time to stop building toolkits interfaces to X and get to the real productivity problems encountered by application programmers. While toolkits do relieve the burden of having to learn Xlib (which is all I will use by the way), they simply create a different set of implementation challenges for the application programmer. We need an Interface Builder. One that can compile user interface specifications into various implementations be they Xlib, Xt, Xmu, Xaw, or Interviews. Real productivity is only achieved when large numbers of lines of code are eliminated; not reduced, not replaced. Stergios Marinopoulos stergios@jessica.stanford.edu