A Gov Application Developer's Perspective - X Windows future?

Jim Schatzman <[email protected]>
Newsgroups gmane.comp.xfree86.forum
Message-ID <[email protected]>
All:

I develop systems for the U.S. federal government. While the fed is one of the largest users of
X Windows based GUI tools, there are a number of problems with the future of X Windows in
this arena. I don't know the details of the Keith Packard controversy, but I can tell you that his
many papers on X Windows performance are definitive. I am sorry to see this apparent rift develop.
We need to be solving a lot of problems that have to do with performance, and some
that have to do with reliability.

Some of the issues for the future of X Windows in the federal world include:

1) Performance/comms - X Windows uses huge numbers of very small packets. This is a recipe for
disaster in many future network environments, including the Internet.  LBX doesn't help much -
as pointed out by Keith. Don't know the solution, but I do see the need for a better way to
distribute graphics workload across client and server.

2) Performance/Windows implementations - The current Cygwin port of XWin32 is incredibly slow. Our benchmarks
show that it runs something like 10x slower than commercial X servers for Windows. Like it or not, Windows
is the platform of the future for analysts' desktops. We need the highest possible quality of graphics
service on these machines.

A start might be an X Server written from the ground up to use native Windows GDI and DirectX
functionality. Adequate OpenGL support has been around for Windows for some time.
When are we going to have similar support for X?

3) Reliability/Web enablement - Yes, I am very familiar with Broadway, X Web, LBX, etc. None of this
works in practice as well as what we need.   One problem is that web browsers
make lousy window managers. Another problem is that web deployers generally want their applications
to work on ANY CLIENT with ANY BROWSER. Until such time as X Windows is universally available
as a built-in or plug-in for all major browsers and all versions of those browsers, browser compatibility
is an issue. Java has a similar problem, mainly due to Microsoft's obstinacy, but we are getting to
the point that Java works fairly well with IE, Netscape and Mozilla.  X Web has not yet achieved
much general acceptance.

I am also familiar with the major commercial replacements for X protocol: Citrix, Tarantella, GoGlobal.
All largely solve the browser compatibility problem. There are some performance improvements here
and some MAJOR PERFORMANCE HITS with these technologies. For example, Tarantella can run
a factor of 10x to 100x slower than native X Windows technology.  For highly dynamic user interfaces,
this is not an acceptable solution.

4) Performance/distributed processing - Ideally, you want to be able to divide up the workload intelligently between
application host and user's machine (app/client or X client/server).  X Windows has made a stab at this.
Sometimes X works very well at shifting the burden to the client (X server). However, in many practical
applications we need to be able to shift more of the burden to the application (X client).
Xvfb is useful but it is only a start.

Some people say X is obsolete because the world is going away from client-server technology.
This is not entirely true, IMHO. Multi-tier architectures still use client-server functionality for
many functions. However, what is needed is a way to intelligently support "thin clients".
In the graphics world, this means keep the large volumes of data on the server yet still
supporting acceleration on the client (X server).
You need to do that rendering on the server (X client) that makes sense to do there (rendering that
requires large amounts of data and little user interaction) and to do that rendering on the
client (X server) that makes sense to do there (rendering that requires small amounts of data and that
requires a greater degree of user interaction). Neither Web X nor Java nor Citrix et al nor SVG
nor RWT nor SWT nor anything extant today has got it exactly right!

Please keep in mind that a game has different requirements than a typical analysis application.
For the former, all the data is typically located on the user's machine (client/X server).
For the latter, you really cannot ship terabytes of data to thousands of users' PCs. This
problem demands an intelligent client vs server division of labor!  There can be similarities.
Maybe you want to ship blocks of data to the client (X server) for caching . Absolutely this
is appropriate in many circumstances. In other cases, it just won't work.

Imagine a virtual reality game in which the system simulates an entire planet. Individual
clients may cache parts of their local virtual environments. No client is big enough to
store or process the whole thing. This is a game analogy for the fed problem, except that
the feds prefer large centralized servers to a truly peer-to-peer distributed system.
Again, what is needed is a GUI framework that automates the intelligent division of labor.
between client and server.

5) Reliability/Anachronisms - IMHO, the world would be better off if "color map" were to disappear from the
community's vocabulary. Color maps and problems with X Windows fonts continue to plague
deployers of X Windows applications.  This is ridiculous.

6) Performance/Hardware acceleration - Absolutely any acceptable solution needs to fully support hardware
acceleration. An ideal solution would support both offscreen hardware acceleration on the application
side (X client) and onscreen hardware acceleration on the client side (X server). Some of this
capability exists today, but it needs to work seamlessly and reliably on essentially all
platforms before we can declare victory.

7) Development/maintenance costs - The numerous standard X APIs and extensions are so
complex that development and maintenance costs are excessive. IMHO, X needs a serious
house cleaning. Instead of demanding backwards compatibility, the old stuff should be
gradually obsoleted and deleted. Face it, it is becoming tough to find X books anymore
in the computer bookstores because the commercial and government worlds are both
abandoning X for simpler APIs that are more easily applicable to the Web.

Thanks for reading my comments-

Jim Schatzman
Northrop Grumman Mission Systems
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.