The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Diomidis Spinellis <dds@aueb.gr>
To: TUHS main list <tuhs@tuhs.org>
Subject: [TUHS] Perkin-Elmer Sort/Merge II vs Unix sort(1)
Date: Fri, 17 Jan 2025 19:23:51 +0200	[thread overview]
Message-ID: <28a16508-9ee5-41f1-af02-2f8cd7371de8@aueb.gr> (raw)

I chanced upon a brochure describing the Perkin-Elmer Series 3200 / 
(previously Interdata, later Concurrent Computer Corporation) Sort/Merge 
II utility [1].  It is instructive to compare its design against that of 
the contemporary Unix sort(1) program [2].

- Sort/Merge II appears to be marketed as a separate product (P/N 
S90-408), whereas sort(1) was/is an integral part of the Unix used 
throughout the system.

- Sort/Merge II provides interactive and batch command input modes; 
sort(1) relies on the shell to support both usages.

- Sort/Merge II appears to be able to also sort binary files; sort(1) 
can only handle text.

- Sort/Merge II can recover from run-time errors by interactively 
prompting for user corrections and additional files.  In Unix this is 
delegated to shell scripts.

- Sort/Merge II has built-in support for tape handling and blocking; 
sort(1) relies on pipes from/to dd(1) for this.

- Sort/Merge II supports user-coded decision subroutines written in 
FORTRAN, COBOL, or CAL.  Sort(1) doesn't have such support to this day. 
One could construct a synthetic key with awk(1) if needed.

- Sort/Merge II can automatically "allocate" its temporary file.  For 
sort(1) file allocation is handled by the Unix kernel.

To me this list is a real-life demonstration of the differences between 
the, prevalent at the time, thoughtless agglomeration of features into a 
monolith approach against Unix's careful separation of concerns and 
modularization via small tools.  The same contrast appears in a more 
contrived setting in J. Bentley's CACM Programming Pearl's column where 
Doug McIlroy critiques a unique word counting literate program written 
by Don Knuth [3].  (I slightly suspect that the initial program 
specification was a trap set up for Knuth.)

I also think that the design of Perkin-Elmer's Sort/Merge II shows the 
influence of salespeople forcing developers to tack-on whatever features 
were required by important customers.  Maybe the clean design of Unix 
owes a lot to AT&T's operation under the 1956 consent decree that 
prevented it from entering the computer market.  This may have shielded 
the system's design from unhealthy market pressures during its critical 
gestation years.


[1] 
https://bitsavers.computerhistory.org/pdf/interdata/32bit/brochures/Sort_Merge_II.pdf
[2] https://s3.amazonaws.com/plan9-bell-labs/7thEdMan/v7vol1.pdf#page=166
[3] https://doi.org/10.1145/5948.315654

Diomidis - https://www.spinellis.gr

             reply	other threads:[~2025-01-17 17:24 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-17 17:23 Diomidis Spinellis [this message]
2025-01-17 19:10 ` [TUHS] " Bakul Shah via TUHS
2025-01-17 19:35   ` Marc Rochkind
2025-01-18 14:51     ` Diomidis Spinellis
2025-01-18 15:16       ` Larry McVoy
2025-01-18 15:40         ` Paul Winalski
2025-01-18 16:54           ` Marc Rochkind
2025-01-19  3:45           ` sjenkin
2025-01-18 16:00         ` Bakul Shah via TUHS
2025-01-18 16:25           ` Tom Lyon
2025-01-18 17:07             ` ron minnich
2025-01-18 19:39               ` Marc Rochkind
2025-01-17 20:07 ` John Levine
2025-01-18  4:46   ` Dave Horsfall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=28a16508-9ee5-41f1-af02-2f8cd7371de8@aueb.gr \
    --to=dds@aueb.gr \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).