The importance of xterm for X Windows

May 3, 2011

In an earlier entry I said that you could make a strong case that X succeeded because its authors spent so much effort on making xterm a good terminal emulator. Today I feel like explaining that.

First, let's be clear that xterm was (and is) a very good terminal program. It was fast and responsive, it worked well, it emulated almost everything that a very popular real terminal did (which was important because at least some things basically assumed that they were talking to a vt100-compatible terminal), and it had excellent cut and paste support for straightforward text. These were not necessarily common attributes in terminal programs at the time (and even later; NeWS had a famously slow terminal emulator if I remember correctly).

(People sometimes knock xterm's cut and paste support as being non-standard. That is true, but its cut and paste support is also extremely fast and easy to use; if you are going to use it a lot, this matters much more than having a slower but more standards compliant version.)

This mattered because almost everything people did in new Unix windowing systems at the time was, well, run terminal windows. This is because the new windowing system wasn't going to start out with very many desirable graphical programs for it (and X certainly didn't); as a result, most of what people did with it was run their existing terminal-based programs in terminal windows. How nice those terminal windows were thus made a big difference to how enthused people were about the overall windowing system; a bad terminal program made the whole system unpleasant or annoying to use, while a good one made it a pleasure.

(The web has changed this drastically; these days the majority use of any graphical system is probably to run a browser. But this was back in the mid to late 1980s and early 1990s.)

My strong impression is that a lot of the competing window systems considered their terminal program to basically be an afterthought (which resulted in the sort of terminal program that you'd expect); most of their focus was on building a graphical toolkit and then some number of graphical programs to alternately show it off or do useful work. The problem was that of course these systems could never build enough graphical programs to make the terminal program unnecessary, even if Unix people at the time had been willing to give up the command line. The result was that in practice the experience of using those systems tended to be kind of unpleasant unless you were doing something that their particular set of GUI programs were good at.

Written on 03 May 2011.
« The apparent origins of some odd limitations in the iSCSI protocol
Why xterm's cut and paste model is non-standard and limited »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Tue May 3 01:15:22 2011
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.