logoalt Hacker News

bch • yesterday at 7:52 PM • 2 replies • view on HN

> Kudo’s to Mr Osterhout’s long lived legacy

Tcl and Tk are fantastic, and if this is where it ended, John Ousterhout would have secured his place in history - this is only 1 piece of his contributions, though - see too:

  * Log structured file system[0]

  * parallel Make[1] (Adam de Boor from Sprite project, not JO hisself)

  * RAFT consensus protocol[2]

  * Various notable teachings [3][4][5]

[0] https://en.wikipedia.org/wiki/Log-structured_file_system

[1] https://man.freebsd.org/cgi/man.cgi?query=bmake&sektion=1

[2] https://en.wikipedia.org/wiki/Raft_(algorithm)

[3] https://en.wikipedia.org/wiki/Ousterhout's_dichotomy

[4] https://web.stanford.edu/~ouster/cgi-bin/papers/threads.pdf

[5] https://web.stanford.edu/~ouster/cgi-bin/aposd.php


Replies

spijdar • yesterday at 8:38 PM

It's unfortunate that Sprite itself didn't really get absorbed into much of anything, and so doesn't have much of a footprint and isn't really remembered outside of LFS and a few even more niche bits.

But I think the Sprite kernel and the Sprite-specific libraries (Pfs, Pdev, Fs_Select, Td_), as well as the Sprite-specific userspace, were pretty incredibly pieces of software given the limited resources they were created with.

For that matter, John Ousterhout's text editor and terminal emulator, mx and tx, were the substratum that Tcl was built on. There's a single library on Sprite, libmx, which mx and tx are based on. Tcl basically grew as the command language of libmx, originally two separate entities, then by mx 2.4 it was fully incorporated:

  eery@cherimoya [1] > cd /sprite/src/lib/mx
  eery@cherimoya [4] > grep Tcl *.c
  mxCmdAM.c:    Tcl_Interp *interp;
  mxCmdAM.c: Tcl_Return(interp, Cmd_BindingGet(mxwPtr->cmdTable, argv[1]),
  mxCmdAM.c: interp->result = Tcl_Merge(bindingCount, bindings);
  mxCmdAM.c:    Tcl_Interp *interp;
  [...]
  eery@cherimoya [10] > grep LIBS ../../cmds/mx/local.mk
  LIBS  = -lc -lmx -lsx -lcmd -ltcl -lX11
Of course, even by 1992, there were multiple versions of Tcl coexisting... :-)

  eery@cherimoya [11] > ls /sprite/lib/sun4.md | grep tcl
  libtcl.a
  libtcl5.a
  libtcl6.2.a
  libtcl6.3.a
CorrectHorseBat • yesterday at 8:00 PM

I see this praise of tcl/tk a lot on HN, but everyone I know (myself included) absolutely hate working with it in VLSI CAD tools.

➕ show 4 replies