To: Thomas A Watson who wrote (2349 ) 10/24/2000 11:16:14 AM From: E. Charters Respond to of 2615 X may be flexible and partly extensible. i.e. code can travel to remote virtual machine space. That was how it was designed. But it is way too high bandwidth to function as an efficient, remote, extensible language in a production environment. Can you imagine a server running 32 X-processes for a bunch of clients? It would have to be a CRAY mark 2000 with a gigabit line. X hogs the resources and cripples all but the fastest machines. It eats memory like kids eat candy. Programs require scads of it. XCLOCK is a lousy two bit pop up that does nothing, AND eats 1.5 megs of ram. And what about colour maps? So clients don't care about servers? That is because the client is the server in X. the calling program in X that uses the resources is actually called the server . X has it backwards. And what about colour map flashing and crash and lock? X has plenty of that! What about cut and paste? Smooth? easy? Trouble free? uh-uh. What about simplicity of setup, profile controls, and customizability? OK, you can have lots of window managers. Neat, but hardly customizable. Why not one good WM? If one wants to implement a good GUI and window manager system it may more easily be done as true client-server. It is obvious that a local WM or GUI resource server has to control resources: memory, controls, io, code "transfer", sharing and colour maps. Why should the client, called the local window server as in X, do all that? How can 10,000 disparate clients co-operate if they haven't ever met? What difference does it make to do it otherwise? Well, if two programs can overwrite each other, collide and compete for system resources without having a clue what the other is doing, what can sort it our? Obviously a server that controls their resource allocation. Nothing else. This does not prevent interoperability, or remote operation, rather it aids it. Nothing but an X-knowledgeable machine will run another X program, unlike Java, which in part was intended to replace X. So if that is the case, then having the remote client understanding X, the bandwidth should be LOW not HIGH. But it is very high. Where is that at? It should take perhaps 4 commands in the calling program to open a window, not 4,000. The code should all be in the server. Why duplicate resources all over the network? Why give the client all the responsibilities of managing its own windows? Why does it have to know? Controlling windows is not the sames as building them, the same way that operating an elevator is not the same as hauling yourself up on a rope. X was built when one meg of memory was lots for a terminal to have. Today 128 megs is "normal" because all now is distributed computing or peer to peer. X should operate like HTML. A few embedded commands cross the network and the client machine operating its own X server on the other end does all the work and puts up the window. To avoid confusion here we talk about true client programs and client machines. Remotely let's say a server runs a program when called by a remote client calling program. The client program should use its own local X-server GUI to operate a windowing system on its own machine. If another client program or machine starts a process, it should use the X-server running locally to locate more systems resources for windows by window managing code running in shared memory. Code should not be duplicated with each new client process on the local machine. Try this. Open Netscape. Then open the games Mahjonng or Spider, and Xpaint. Go ahead. Try drawing a simple line box in Xpaint. Fill the box with a colour. You will see it does not matter what colour, as you will not be able to tell which soon :) Then open Workman, the CD player. It's like a light show. Workman goes white, Xpaint flashes like a mad traffic light and Netscape hangs and its windows lose their text. Nice. Colour maps are colliding and system resources are being badly and needlessly overstrained. And the sad fact is it should all run in 8 megs. Not 128 megs of ram. I know you will scream when I say this but windows 3.11 can do all this in 8 megs of RAM and not even whimper.(OK you would have to run Mosaic 1.1) Now I wouldn't give you ten cents for Windows 3.11, but it does use memory efficiently, unlike X. The only way you can cure X is with a complete rewrite. Customizable GUIS mean easy colour, style AND control changes (buttons sliders, etc ...) with a point and click. Why super-complex rc files that you have to be a programmer who understands Chinese to change? Why not drag and drop and graphic cut and paste? and transparent text and easy font selection? And some of those GNU programs. Do this. Go into gimp and try to write in coloured text. Look for the manual that tells you how to select fonts and colours! Easy huh? So is killing whales with a pen knife from an inner tube. A flexible WM-GUI would allow you to change your total environment with a point and click from a table. New sliders, buttons, menus and the like could be created for any program, graphical or not by dragging and dropping them onto a command. Programmers who wanted to create a window would pick from a template and with 4 lines of C call the entire display window. GUI windows would have square pixels for easy scaling and image location and calculation of display co-ordinates. Make a system like that and within one year there would be 10,000 good programs ported to Linux and the new improved SUPER-X. It would make a GUI something you could run on a server safely to easily monitor a network graphically. What does every book tell you about X now? Don't run it on mission critical server! Can you imagine flying a plane controlled by an X server? Crashing the server would take on a whole new meaning. They would have to set aside Texas for the pilot's graveyard. the passengers would have to be buried in the Antarctic by first cremating them and then replacing the ice. Good source of fresh water and no more over population! Don't tell the Chinese or Indians or they will be building X aircraft by next week. Go to SUPER-X and its bye bye memory crunch, crashes and colour fade. Hello ease of use. And non of the vaunted fleXability would disappear. X and all its programs would run as clients. I dare say that MS-Windows programs would run directly on the GUI with very little rewrite! It may even be possible to have a windows window to run MS-Windows programs without rewrite! Screen print? Push a button. Change personal profile settings in Super-X? Drop a menu and pick settings. Make a command line program go graphic? Fill out a table with selections and drag buttons for commands. Spiff Kablooie! Midnite X-commander! Beat that, X-lover...netlinux.dynip.com