I have known (even now it’s hard to say “I knew”) David Barron since the mid-1970s and was always uplifted by his sheer delight and interest in programming – whatever the paradigm and whatever the language.
He always told me that once you’d had the privilege of working with programmers of the calibre of David Wheeler and Christopher Strachey you rapidly got used to discussing everything from assembler level detail (Initial Orders II), to CPL design, to abstract semantics without turning a hair.
Like many others, I first got to know of his written work via the Monographs on “Recursive Techniques in Programming” on and on “Assemblers and Loaders”. The former introduced me for the very first time (and well before the days of Wikipedia) to the delights of the Ackermann Function as an example of something that was recursive but not primitive recursive. Having just covered `toy’ recursive examples such as “factorial” and “greatest common divisor” in my ARM programming course last semester, I have invited the keen students to try coding up Ackermann “if they think they’re hard enough …”
In the late 70s and early 80s David and I had a lively exchange of views on the rival merits of Algol68 and Pascal. It was typical of David’s status as a Scholar and Textbook Writer that he was soon in at the deep end writing texts (with Judy Bishop) on PASCAL.
David and I would certainly have agreed that whether there’s a “heaven up there”, or not, is a classic example of undecidability. But if you *are* up there, David, then please go to the Celestial Electronic Document Vault and pull out, and read, a copy of “Why PASCAL is not my Favorite Programming Language” by Brian Kernighan.
I rest my case!
Now, David was always proud of his association with CPL and its status as the grandparent of the Bell Labs. `C’ language. Thankfully we both agreed that C was a perfectly acceptable language — at least, for people who knew what they were doing. It combines the precious property of letting you do just about anything you want, while quietly giving you more than enough rope to hang yourself …
I also recall, around the same time, that David wrote a book, with Mike Rees, on UNIX troff. Like me, he delighted in the fact that there is no loop in troff macro syntax and yet there is recursion! So, despite the fact that troff macros seem light years away from a functional language, nevertheless if you want to have a loop in a macro you have to use recursion. Nice one!
You then discover (the hard way) that there are no such things as local variables in troff macros either. Everything is global :-)
Amid great hilarity we agreed that the final line of the `wizard’ entry, in the much-circulated “UNIX expertise hierarchy” document, was wickedly accurate:
wizard Fixes bugs by patching the binaries Writes device drivers with cat > Is on first-name terms with Ken, Dennis and Brian Configures an executing kernel using cat > /dev/kmem Writes own troff macro packages
In the 1980s David gave me an enormous amount of advice while I was involved in setting up Computer Science at Nottingham from 1984 onwards (and I should also add that Roger Needham and Frank Sumner were invaluable too).
The common heritage of Southampton and Nottingham in giving External London degrees for the first half of the last century meant that much of David’s experience was of very direct help. And that in turn led to two decades of Southampton/Nottingham competition and collaboration in various fields of CompSci.
From the beginning of the email era in the 1980s David was one of my most valued and frequent email correspondents. The earliest email I have from him goes back to 1988 (and that date would have been earlier still, had a catastrophic disk crash, in the early 1990s, not wiped out much of my archived mail). My `DWB’ mail folder now totals just over 1000 emails over 22 years — not far short of one per week.
David acted as External Examiner for us, here at Nottingham, on many occasions and at every level from undergraduate to PhD. Most recently, in 2005, he was PhD external examiner (in 2005) for my lecturer colleague, here at Nottingham, Dr Steve Bagley.
Steve tells me that the viva was one continuous round of enjoyable but detailed questioning about the implementation details, and the innards of PDF, that led to Steve’s encapsulated PDF document components called COGs. Although I was Steve’s PhD supervisor, I was not present at the viva, but I could hear the animated debate going on as I walked past the exam. room. Later that day I took great delight in reading a typical Barron-ism in the first para. of the External Examiner’s report. This was to the effect that:
” … this candidate *really* knows his stuff” (!).
For the past 10 years or so my face-to-face meetings with David have tended to be at various Cambridge events celebrating “50 years of EDSAC” or in honour of David Wheeler and (most recently) Maurice Wilkes. The last of these, of course, took place only last year. Although David looked very frail he gave a wonderful and affectionate talk about Maurice and the pioneering days of EDSAC (now available online, and as a paper in Computer Journal).
Afterwards his delight was evident when he received heartfelt congratulations and thanks from Maurice’s daughter.
Finally, it was evident to me from the earliest days that there were almost as many “Davids” in computer science as there were “Bruces” in Australia (as depicted in the Monty Python sketch). As an honorary “fourth David” I was introduced to the disambiguating syntax (used by Drs. Barron Hartley and Wheeler at Cambridge) of saying “David (him), David (you) or David (me) ” to make one’s meaning precise.
So, farewell then, David (you).
I’m missing you so very much already.
David (me: Nottm.)