OddThinking

A blog for odd things and odd thoughts.

Exco Ruciating

Forget “ecto” – let me tell you of the horrors of Exco.

Before I got the luxury of trying to choose between the lesser of two evils – FrameMaker versus LaTeX – I was forced to use an (alleged) word processor called Exco.

Exco was a thorn in my side. I used to curse at it daily and day-dream at my desk, imagining exactly how large a pay-cut I would accept, if it would mean that I could use a different word processor at work.

We’ve All Used Bad Editors

Sure, we have all been forced to use bad editors at some stage. I recall, with a tinge of nostalgia, the days where I had to move back and forth between Emacs on a Sun Solaris machine and SOL on a Prime machine. In Emacs, CTRL+P would move the cursor up one line. In SOL, CTRL+P would immediately quit from the editor without saving. Ah, the old-time hilarity that ensued! (I had a theory that CTRL+P on SOL was merely shelling out to a new command-line, but despite extensive searching, I could never work out how to exit the shell back into the application.)

Exco, however, was in a special class of its own.

Why Exco?

Its claim to fame was that it had a very special feature, called “Expand/Compress” (and hence the name Exco). This feature enabled you to write a subsection with a title, and “compress” it so that the body of the section was elided and only the title was visible. If you ever needed to edit that section again, you could “expand” it. It made working on large documents far more convenient, as you did not need to page around so much.

Sure, today this feature is familiar to everyone as “Outline mode” in Microsoft Word 2003, but back then, when I was using Exco… well, it was familiar to everyone as “Outline mode” in Microsoft Word 2.0, or as “sub-documents” in WordPerfect 5.1 (Admittedly, sub-documents is a different technology, but it solved the same problem.)

Why not Exco?

The development effort spent on introducing this bold new feature to the world of word-processing had to come at a cost. They had to skimp on some of the little, less important features – you know, the ones most people never use – like “word-wrap” or “auto-save”.

Word-Wrap

Exco knew exactly how many characters fit across the printed page: 80 – just like the terminal screen. In its little model of the world, it was WYSIWYG – just so long as your printer printed exactly like the terminal looked.

On our proportionally-spaced laser printers, this assumption wasn’t exactly true. As a result, the right margin was more than just a little ragged. If a line had a large number of upper-case characters (e.g. identifier names) or had more than about a dozen bold characters, the printed line would run right off the edge of the page.

Auto-Save

Exco had something much better than auto-save. It had journalling. Each time you typed a key, it would append that key to a journal file, as well as making the edit. If the system crashed, you could re-run Exco in recover mode. It would open your original file, and step through all the keystrokes in the journal file, to reapply all the changes you had made.

This approach had two problems.

If your actions had triggered a bug in Exco that caused it to crash, reapplying all your changes would simply cause it to crash again.

More importantly, the implementation had a horrific bug – if you saved your document (or printed your document, which did an implicit save), then it stored the save command in the journal (rather than clearing the journal file, which would be the correct behaviour).

If the system then crashed, running Exco in recover mode would retrieve the updated document, and reapply changes that had already been applied Рgenerally turning your document into gibberish. Then, in a coup de gr̢ce, Exco would reach the Save command in the journal, and save this gibberish right over the top of your clean document. The word soon passed around the office: Do not run Exco in recover mode!

If you can’t say something nice…

I tried to look on the bright side. For example, I pointed out regularly that the Exco organisation must have had a fantastic sales team!

However, the last word goes to a cartoon that I had pinned to my cubicle at the time. It showed a lawyer speaking to the CEO of Exco Software. (The cartoon had been slightly localised with the magic of liquid paper!) The caption read something like: “The makers of some encryption software, which turns documents into a morass of unintelligible random characters, are suing us for look-and-feel.”


Comments

  1. So by “outline mode” I assume you mean “folding”

  2. Sunny,

    Yes, kind of.

    We were using Exco strictly for documentation. Development was being carried out on a completely different machine – on a platform that I absolutely adored, especially in comparison to Exco and VMS.

    Perhaps incorrectly, I associate folding editors with automatic parsing of structured documents, like source code, rather than the manual structuring of text documents, like Word or Exco.

    While the concept of syntax-based editors elliding unnecessary details has been around for a long while, the implementation of practical solutions have been more recent. If Exco had been doing source-code folding back then, it genuinely would have had an advantage over, say, Emacs.

  3. Well, this odd “word editor”, which even doesn’t have any undo function(!), is still in use. Rumours says that this editor is being used for code development for the on-board computers in one of the most advanced fighter aircrafts in the world… despite that it lacks exactly every single code development feature that you can think of (e.g. colour coding). Since compressions (=foldings) are used extensively to hide code, some files could easily reach 20000 or even 100000 (a hundred thousand!) lines of code without anyone noticing it (Exco lacks line numbers…). All together, this surely leads to very unstructured and badly designed code if you’re not extremely careful.

  4. Steven,

    How awfully depressing. I sympathise with those developers.

    I guess the Exco sales team haven’t retired quite yet.

Leave a comment

You must be logged in to post a comment.

Web Mentions

  1. OddThinking » Introducing the Rational 1000