Efficient text editing on a PDP-10
October 23, 2020 11:04 PM   Subscribe

So I started to dig around in the SAILDART archives, and quickly found Donald Knuth’s TeX working directory, because this actually was the system TeX initially was developed on! Not only the early TeX78 can be found there (look for the TEX*.SAI files), but also the source code of TeX82, written in literate Pascal, which essentially still is the core of today’s TeX setups. 1400 words from Leah Neukirchen on some deep UNIX roots.
posted by cgc373 (13 comments total) 31 users marked this as a favorite
 
Very nice.

Perhaps ITS and WAITS are predecessors of UNIX, not ancestors. I'm not claiming any type of deep knowledge of the subject. I've used ITS for maybe a total of a few hours. I've never used WAITS unless TOP-10 counts as WAITS.

The article did bring up something I never thought about. Now I have an hypothesis that the reason there are so many page oriented commands in Emacs is the influence of E, an editor that I will never ever use.

Thank you for the invitation to revisit a time before the internet, the web, e-commerce, social media and the shit show that it all stacked up to be.
posted by rdr at 12:08 AM on October 24, 2020 [6 favorites]


Interesting stuff -- thanks for posting!
posted by UhOhChongo! at 12:15 AM on October 24, 2020


Thank you for the invitation to revisit a time before the internet, the web, e-commerce, social media and the shit show that it all stacked up to be.

I got stuck last night on Shel Kaphan. Nowhere near Donald Knuth in terms of the academic rigor and advancements but it is fascinating hearing him describe in simple language things we now take for granted: user state over multiple sessions, asynchronous programming, even overcoming the obstacle of seeming uncouth by bringing commerce to the web -- or even cookies!
posted by geoff. at 5:34 AM on October 24, 2020 [1 favorite]


Reminds me of an optimization used by some early text editors -- as you moved the cursor around, the editor would rearrange memory so that there was a gap in the area where you were about to insert text. This would make inserting text very fast, at the cost of slowing down cursor movement. (or maybe I am imagining this)
posted by RobotVoodooPower at 8:38 AM on October 24, 2020 [2 favorites]


yeah, pretty sure VEDIT did that, RobotVoodooPower.

Hmm, I wonder if the TeX Book source contains the missing file that stops mere users from typesetting a copy for themself
posted by scruss at 10:47 AM on October 24, 2020


as you moved the cursor around, the editor would rearrange memory so that there was a gap in the area where you were about to insert text

It's a pretty common technique, see also Gap buffer.
posted by dmh at 11:48 AM on October 24, 2020 [1 favorite]


Before I switched over to the Mac & Linux world, there was a Windows-based text editor I used to love called TextPad. With TextPad, you could load and edit arbitrarily large files (like tens of GB) without any noticeable lag. And this would have been back in the early 2000s, so you're doing this on like 2005-era hardware. To this day, I haven't been able to find another graphical full-screen editor with this capability. No idea how TextPad does it, but so far as I can tell, it's in a class by itself.
posted by panama joe at 3:15 PM on October 24, 2020


Before I switched over to the Mac & Linux world, there was a Windows-based text editor I used to love called TextPad.

I just googled it, and it's still there after 25+ years. https://en.wikipedia.org/wiki/TextPad

Says it's all of 6MB.
posted by mikelieman at 4:43 PM on October 24, 2020 [1 favorite]


I just googled it, and it's still there after 25+ years.

#1 on their features page:
Huge files can be edited, up to the limits of 32-bit virtual memory.

Somewhere at Helios Software, a Real Programmer continues to be employed.
posted by panama joe at 6:47 PM on October 24, 2020 [2 favorites]


And this would have been back in the early 2000s, so you're doing this on like 2005-era hardware.

On one hand, I recognize that 15 years is like eightish iterations of Moore's Law. On the other hand, it wasn't that long ago, compared to PDP-10s.

Says it's all of 6MB.

...which is like four 3.5" floppies.

Anyone else feel like, really old?
posted by MrGuilt at 9:27 PM on October 24, 2020 [4 favorites]


TeX is not a text editor, it's a typesetting system for books and papers with lots of mathematical formula. TeX was developed by Knuth when he had problems typesetting his book series The Art of Computer Programming. He stopped working on the books to develop TeX in 1977 and it took eight years. When it was done he started back on the series, which is still not complete. All of The Art of Computer Programming books are now set with TeX, so they all have identical formatting. Besides TeX, he also wrote an algorithmic font creation system called Metafont. Metafont was used to create the Computer Modern font specifically for TeX

TeX and Metafont were created using a software development paradigm called "literate programing". The idea was to have a unified source document that contained both the code and the documentation. Depending on how the source was processed, either the documentation or the running program could be generated. The goal was to edit the code and document components at the same time, resulting in a system where the code and documents were always in sync. That's why "literate Pascal" is in the directory.

TECO, or Text Editor & COrrector was the editor supplied with Digital Equipment Corporation systems like the PDP-10. The name started out as Tape Editor & COrrector, so it goes way back. TECO was very painful to use. Every upper and lowercase letter, and most non-alphanumeric characters were commands. TECO did not automatically display anything. To see the result of an edit the in memory text buffer needed to be displayed on the terminal using TECO commands.

The EMACS editor started out as a set of macro commands designed to make TECO easier to use. As stated in the article, eventually it got a full screen mode, and the rest is history.

The genesis of the vi text editor is similar. It was incrementally created from a series of command line text editors on Unix, and eventually was implemented as a full screen editor by Bill Joy on BSD Unix.
posted by Metacircular at 1:15 AM on October 25, 2020 [3 favorites]


...which is like four 3.5" floppies.

Back in the mid/late 90's, I guess, my go-to word processor was a little thing called Yeah Write!. It was template driven. Select "business letter" and fill in the blanks.

One disk.
posted by mikelieman at 1:58 AM on October 25, 2020


The buffer gap technique is still pretty current. I used it when I wrote the Android text widget.

Unix's grandparent is CTSS, the Compatible Time Sharing System that ITS is defined as Incompatible in contrast to, not ITS.
posted by enf at 1:01 PM on October 26, 2020 [2 favorites]


« Older She sells skeins well via self serve   |   “Anyways, it winds up bein’ some aliens...” Newer »


This thread has been archived and is closed to new comments