Genius, Gentleman and Mischievous Schoolboy

It was Andy Shiers who put the above words together in an instant message to me last week, a couple of days after the APL community had lost one of its most respected, most adored, and most influential members. Although I only had the pleasure of working with John for half the time that Andy did, I was fortunate to enjoy all of the above.

Gentleman

As a user of Dyalog APL, I was of course familiar with his work before arriving at Dyalog to take up the post of CTO. The idea of being appointed the manager of recognised genius (and ex-director of the company) was a little bit intimidating. But as so many have experienced, no matter who he was talking to, John always humbly tried to understand where people were starting from, and how he could help them get to where they needed to be. John seemed to be without an ounce of arrogance, and working with him was pure joy.

When John found himself in disagreement with the majority in a meeting, he would typically use disarming humour to make his points, rather than confront people head on. When John declared that unfortunately, because he was a “Bear of Little Brain” and therefore unable to understand the (typically over-complicated) proposal that was on the table, you knew that it was time to pay attention!

Genius

John’s early work on APL consisted of implementing a variety of APL interpreters, according to the existing language specifications, culminating with Dyalog APL based on the STSC NARS specification in 1983. However, he quickly became an innovator, working on the design of new language features. In particular, John became sick with desire for the beauty and simplicity of functional programming, after reading about it in 1989. Fortunately, he decided to remain true to his first love, and rather than abandon her for his new mistress, he decided to have them both at once, by designing the functional extension to APL that became known as dfns.

As with most works of true genius, it took the community a very long time to recognise the true value of this work. It is only in the last decade or so that broader community is starting to realise that dfns may be the feature that will guarantee that original work of genius that APL already was in 1966 will continue to be an attractive, modern language that young people will want to learn, for decades to come. John also worked hard to present APL to new audiences; his video on Conway’s Game of Life approaching 200,000 views – probably the most widely viewed presentation on APL in history.

Most of the community initially found his work on dfns irrelevant or even annoying, but like all great artists, sportsmen or other great performers, John was able to shut out the chaos that surrounded him and focus on that which his instincts told him were important – eventually producing works of great beauty and enormous value. Unlike many geniuses, John managed to remain polite to people who questioned his priorities, which may well have been an important reason for his being allowed to push on with it.

Mischief and Humour

Great intelligence is often accompanied by a good sense of humour, and John was an extreme example of this. He had an incredible talent for comedy, to the extent that I suspect he could have had a very successful career as a stand-up comedian, if the programming thing hadn’t worked out. His Social Skills for Programmers, recorded at the Dyalog User Meeting in 2013, is a wonderful example of this talent, he had most of us in fits of laughter.

There are many stories from the early Dyadic days of practical jokes that John engineered, but I missed them and will have to leave that part of the story to others to tell. If you look carefully, the mischievous schoolboy did sneak a joke or two into the product. For example, it seems to me that it must be a joke that functions like catenation are included in the list of invertible functions supported by the power operator. With apologies to non-technical readers of this text:

      ('<'∘,⍣¯1) (,∘'>'⍣¯1) '<ha>' 
ha

(Join ‘<‘ to the front and ‘>’ to the end of the letters <ha>, negative one times).

John fought complexity with all his being, and much of the elegance of his designs were driven by the desire for simplicity. Every time we added a new feature to the development environment, John’s comment would typically be “That is wonderful – how do I turn it off?”. His hilarious sketch A Plea for Simplicity, explains so much about his approach. It was fortunately recorded and is available here.

I expect I shall be listening to it regularly, in times of both darkness and light, while I wait for him to reappear briefly at some point in the future, to demonstrate that as promised, he had managed to extend the delay function (⎕DL for APL nerds) to accept negative arguments, but hadn’t had time to tell us about it.

One of John’s favourite jokes was that he worried that, on being asked to give an account of his life to St. Peter on his arrival at the Pearly Gates, all he would be able to say was “I spent my life working on this one computer programme and I almost got it working” .

– Morten Kromberg

Andy Shiers

John Scholes .. the finest and nicest bloke I’ve ever met .. and one of very few who I’d call a genius.

A genius for developing the language ..

A genius for explaining the language to dummies like me ..

The patience of a saint when dealing with my questions ..
.. and a genius for devilment when the mood was upon him.

I recall sitting in a sauna shooting the breeze with JD when Scholes opens the door, picks up the full bucket of cold water, tips the whole lot on the brazier and leaves. JD and I watched in fascinated horror as the column of heat went up, along, down, back along the bench and then hit our sides .. leaving us feeling like we’d been rubbed raw with sandpaper. Made worse by one of John’s cackles of merriment. The b***d.

Sometimes it backfired on him. At a waterpark in San Antonio he went on a slide .. perhaps 120’ long, depositing you in the pool at the bottom.

“Gentlemen”, announced the young attendant, “ remember to cross your legs”. Scholes being Scholes wasn’t going to play by the rules .. so down he went, legs uncrossed. Splat .. he hit the water at speed. He stood up, white as a sheet, wobbled a bit and announced (loudly) to the world “Christ, I’ve driven my balls up into throat”. Cue much laughter from Pete, JD and me, and much confusion from the young lady standing next to him.

And the postcard from him while skiing in Bulgaria with his sons: “The little bastards can ski faster than me. But not with such style”.
JMS to a “T” .. what a wonderful man !

Brian Becker

I first encountered John in Bethesda, Maryland in 1983 at APL83 when Dyalog APL was introduced to the world. At that time I was 22, working for STSC, and spent a fair bit of time at the Dyadic booth “checking out the competition”. I remember being at APL95 in San Antonio, Texas, when John and Pete Donnelly received their Iverson Awards. But it wasn’t until I began working with Dyalog in 2011 that I can say I actually met John and have been fortunate to occasionally spend time with him at the Dyalog office in Bramley or at Dyalog user meetings. John was wickedly and wryly funny with a sense of humility that belied his brilliance. While John’s passing greatly saddens me, I’m nevertheless so thankful for having known him…

Thank you John…

  • for your contributions to the APL world including Dyalog APL, dfns, and function trains.
  • for your wit – your humorous videos and presentations will continue to bring smiles to us all. Lunchtime conversations in Bramley were always fun.
  • for sharing your vision – I’ve rewatched several of your presentations over the last few days and continue to marvel at your ability to clearly and concisely share your ides.
  • for your help when I’d pose questions about dfns, binding strengths, function trains and so on. You always treated even my most stupid questions with patience and respect.
  • for being an early and eager advocate and user of TryAPL.org. Your suggestions and feedback helped make it ever better.
  • for the dfns workspace – what a wonderful collection of code! Even if it makes it harder for me to find problems for the APL Problem Solving Competition that you haven’t already solved. 😊
  • for helping make it possible and fun for me to use this amazing thing we call Dyalog APL to do work that I love.

At Dyalog ’18 in Belfast, my wife Marta and I were fortunate to share a couple of evenings with John and Flora at the hotel bar. We talked about all manner of subjects and I got to see John from a new perspective. It was such a blessing to have been able to spend that time together.

Karen Shaw

John was one of life’s true gentlemen. Kind and caring with a wicked sense of humour … if mischief was afoot at Dyalog then you could be sure John was involved. He also made a damn fine Margarita … one and you felt on top of the world, two and you lost the ability to talk or walk … they were legendary!!

Fiona Smith

I feel very privileged to have experienced John’s genius for teaching first-hand when he oversaw my first forays into APL. His passion for the subject matter was contagious and his patience, self-deprecation and vast knowledge made him one of the best teachers I’ve ever had. He was always willing to listen and help.

I wasn’t ready to lose his understated-yet-wicked sense of humour, gift for story-telling and curiosity about the world – I’m grateful for his willingness to share these. My days were richer for our eclectic conversations over tea in the office covering etymology, what the effect on the universe would be if Pi was rational, how to make better sushi, why bright shoelaces are the only way to go, and so much more.

A true gentleman who I never heard say a bad word about anyone; he inspired respect and affection. The World now has a very large John-shaped hole. “Oh man”.

Adám Brudzewsky

John was the wizard of Dyalog. An absolute master of APL. Despite his respectable age, he was always playful at heart, keen to hear about new ideas and to discuss how they might or might not fit into the whole picture.

When the @ operator was added in version 16.0 (the last version to receive new APL primitives before John died), we somehow felt that this was his parting gift — the major missing piece to make APL a full-featured functional programming language. But John wasn’t done yet: Dyalog’s most famous bug ever, “Mantis 17”, which manifested itself in a variety of rare and obscure cases, was assigned to John for 15 years. Recently having squashed the bug, he passed away only ten days after the last related source code change.

John told me his vision of heaven: Every morning, an angel delivers a clean sheet upon which John gets to design a new programming language from scratch. I hear they’ve already got several new languages…

While we won’t have the pleasure of his physical presence any more, his legacy and life work lives on. Thanks to his magnum opus, dfns, APL is becoming popular with “the cool kids”, once again, and all newer APL implementations have adopted dfns too. John Scholes isn’t gone!

Geoff Streeter

Circa 1982: At a restaurant (Haslemere I think) John, Pete and I persuading the resident guitarist to play “Angie”. He rose to the challenge.

Circa 1987: John and I wandering around Paris and John expressing appreciation for the torn fish nets on a “lady”.

Circa 2007: John – commuting by train from Reading to Bramley. Kept getting hit on by a proselyting Christian young lady on the same train. He changed train. I would have taken her on theology. John was kinder – or lacked the confidence.

September 2006 (Dyalog is 25 years since first code): John and I paid a nostalgic visit to Maidenhead and wandered around trying to recognise the Zilog buildings. We went for a meal and had a chat. He asked me which code I was most pleased with. I suggested the transpose code that recurred on rank. Now Marshall has replaced that code. Fine by me.

Circa 2007: John had just done one of his stand ups at a conference (Lo-Skolen) asking for something simpler like a hammer. I put about 20 different purpose hammers on his desk to greet him as he came to work.

John had a motor cycle history with a Brough Superior – same bike that Laurence of Arabia rode. (being pedantic Laurence had 8 different Broughs. I don’t know which model JMS had.) More recently he told me that he had enough HGV experience to have had an HGV license for the asking when they were introduced.

Lots of interesting disagreements.

Jay Foad

John Scholes was my mentor. When I arrived at Dyalog I knew nothing of APL. John suggested we have a chat, so we spent the first week in a small room together, while he patiently explained the language and its implementation. My notes from the first day: “the enclose of a simple scalar is itself”. We hit it off intellectually and he was lavish in his praise and encouragement. He told me and other new recruits to record our first impressions of Dyalog, saying they were like gold dust.

He brought both art and science to his work, and was as precise when writing prose as he was when writing code. He always had an apt turn of phrase for explaining some concept or terminology. “Recurring dreams recur; recursive functions recurse.” Not only did he design and implement dfns, he also wrote the best short story I have ever read about a washing machine.

Once I mentioned to John that (veteran computer scientist) Donald Knuth had given a public lecture nearby at Oxford University, but that I had been too apathetic to attend. He scolded me: never do that again! So sure enough, the next time Knuth was in town, we traipsed off to see him deliver a rambling lecture about squaregraphs, with hand drawn acetate slides on an overhead projector. John clearly relished the experience despite describing Knuth as “just barely viable as a lecturer”.

Romilly Cocking

John was a remarkable colleague and a good friend.

We first met when John was working with the APL team at Atkins Computing in the mid 70s.

He made an immediate impression. He came across as calm, considered and extremely competent and it was always a pleasure to see him at APL user group meetings.

John moved from Atkins to ICL Dataskil where he worked on their APL implementation for the 2900 series mainframes. They were not generous payers and John contacted me at Cocking and Drury to explore what he described as ‘moonlighting opportunities’.

The outcome was that John taught an APL course for us, which he did extremely well, displaying his extraordinary ability to simplify ideas down to their essence.

Some time after the course he left ICL and joined Dyadic systems (which later became Dyalog). When I started working more closely with Dyalog I was delighted to get to know him better.

He had a deep understanding of APL and had the ability to express his ideas simply and clearly. He was unfailingly friendly, curious and amusing. He always had something interesting to say. His sense of humour was sometimes sharp but never unkind. Meetings were always more fun when John was involved.

When I next visit Bramley I will miss his warm greeting, his playful grin and his insight.

We are lucky to have known him.

Nick Nickolov

I have this vivid memory of John Scholes: once, after a chat about something interpreter-related, i asked him casually “by the way, have you heard of those non-transitive dice which …” and he reached for his pocket and took out a set: “you mean like these?”

Peter-Michael Hager

For me John Scholes always was what the éminence grise of Dyalog, the man making visions behind the scenes.

To meet him, always was an event driven by his peacefulness and wisdom. It is hard to realize that we have lost him.

The future will be different without him.

Roberto Minervini

Geniality, great knowledge, humility and an extraordinary sense of humor: these are the ingredients of a great master. I remember when he had made fun of me for bringing about twenty teenagers to the conference, but he had done it with a caress. Point of reference for us young aplers and model to follow as a teacher.

With esteem and affection,

Jonathan Manktelow

Thank you John, for the infectious joy you brought to life. Whether discussing the intricacies of work, life in general, or nothing in particular – just being with you made the day richer, brighter, and more enjoyable, so many rich moments that will live long in memory, continuing to make me smile.

Vince Chan

I will always remember John’s humble kindness, his smile and laughter, the twinkle in his eyes. He was my first ever boss in my working life, and I will be forever grateful for the opportunity he gave me. He is in our thoughts and prayers.

Peter Merritt

Despite his formidable intellect, John was the most approachable of ‘Leading APLers’. His talks were always worth attending (fortunately many are available online), and not just for the humour – how many puns/jokes can you get out of obscure references to ‘trains’?!.

He never ceased to display a sense of excitement and indeed wonder at each new development in the language. But just as importantly, he listened to everyone, no matter how junior; a lesson we could all learn. A unique, ‘class act’ whom I shall remember fondly every time I write a new d-fn…

Stephen Jaffe

I first met John at APL83 in Washington, DC and have very fond memories. He will be greatly missed.

Phil Last

I can only speak for myself but in doing so and taking into account the Copernican Principle I can probably claim to be talking for many in saying that although I can have no claim to be John’s best friend he always managed to make me feel as though I were.

Gilgamesh Athoraya

One of the last times I met John was in last year’s Iverson’s College. We were sitting close to the fireplace in the old Tudor barn, coding and chatting to the backdrop of an ongoing kdb+ masterclass. I was sitting close to him hoping some of his genius would rub off on me. To be fair, John didn’t have much of a choice in the matter as the rest of the barn was too cold, but I tell myself he stayed put because he enjoyed my company.

Flora had told me John knew some Spanish, so I asked him about it and John – being humble as usual – shrugged it off saying he only learnt a bit. We went on to talk about the process of learning new languages and the excitement when you first start to understand the spoken word in a natural conversation. This sparked a memory from the days he lived in Spain and he retold an episode when this first understanding of spoken Spanish caused him some embarrassment.

One day I went to this playground with my son. It was a quiet day and the only other people there were an elderly lady with a small girl. She stroke up conversation, talking slowly and gesturing as she noticed I was a foreigner. I nodded and smiled and did my best to respond with the simple phrases I had learnt. I pointed at my son saying: “Mi hijo”, to which she responded with a long chain of words. I was listening intently, focusing on translating the sentence as fast as I could. As the words clicked into place and understanding came, my face lit up with joy at comprehending what she had said, and I burst out: “¡bueno!”

In a fraction of the second that followed, I digested the meaning of her words and realized she had just told me that she was helping take care of her grandchild as her daughter (the girl’s mother) had passed away.

Maurice Jordan

One of the privileges I have enjoyed through APL has been meeting some of the cleverest people on the planet. John was one of them. In the early days, he and Geoff managed to implement a full nested-array version of APL on the limited computers of the early 1980’s, overcoming restrictions that seem ridiculous these days.

In 1987, I was invited to join John on the BSI panel on standardising extended APLs. The differences of the depth of an enclosed or boxed scalar seemed unreconcilable, but it quickly became clear that at international level, the debate was about Iverson’s approach implemented by IPSA, and APL2 from IBM. Many of the participants in this debate were not aware of the different dialects of the enclosed, or nested, array approach of APL2, as implemented by Dyalog and STSC. Over the years, John and the Dyalog team incorporated APL2 features into Dyalog, directly where possible, and using ⎕ML where there was a clash in the meaning of symbols. More recently, under the influence of Morten and Roger, key elements of the IPSA approach such as rank, forks and hooks, and much else appeared in Dyalog. Who on those panels of 30 years ago would have foreseen this?

But the enhancement I have most enjoyed using is John’s d language. Albert Einstein wrote many times of the “Essential Simplicity” which results in true elegance. John achieved this in d. My code these days contains many little d functions, giving it a greater clarity than would be possible otherwise. And when retirement and advancing age reduces the ability to concentrate deeply for more than a couple of hours at a time, the importance of understanding what I was attempting to achieve with a line of code written days, weeks or even months before becomes very important.

Thank you, John.

Footnote

Thinking back to the debate 30 years ago, when strand notation was a contentious issue, I wonder what would have been made of the sheer beauty a stranding dfn brings to the explanation of the workings of the rank operator as in

      10 20 30 ({⍺ ⍵}⍤¯1)3 4⍴⍳12

An outstanding example of the elegance d can bring to the language.

Graeme Robertson

We think we first met in 1969 when both of us spent a couple of memorable weeks of our summer holidays staying at the youth hostel in Istanbul, next to the Hagia Sophia Mosque. The next time we met was in 1986 when John appeared at I.P.Sharp in London for my one day seminar entitled: APL3 – a seminar on the future directions of APL. Perhaps he learnt something from me on that occasion, but I certainly learnt a huge amount from John because I was lucky enough to work for him at Dyadic Systems in Basingstoke from 1992 to 2003. I was originally employed to help John complete a contract for the UK Water Boards; John did the calculations and I did the screens with []SM. That is where I discovered the sheer elegance of John’s coding style.

During my 10 years as APL Consultant at Dyadic, John worked quietly in his little office and occasionally came through with news of a shiny new “special tool” or an absolutely mind-blowing “wonderful specimen” which made us laugh and smile and be grateful to be working in the midst of such brilliance, creativity and originality. John had a nose for novelty and a flair for functions, not to mention a soft spot for squiggles. Unfortunately he never forgot the time I lent him my spare pair of swimming trunks which, it transpired, were without the usual elastic. Oh! I was only trying to help.

RIP John, your brilliant work lives on.

Rick Procter

Farewell John,

Some try to understand and explain the secrets of the universe. Intellectual leaders like John are at the forefront of this quest, charting the path and establishing new horizons for the rest of us.

After 40 years of programming it, I count myself as just a beginner when it comes to APL. So what this means to me, is that when people of John’s calibre pass, it seems an especially heavy loss. With him to some extent goes the vast knowledge and experience of a lifetime of honing his craft, but he also leaves behind an invaluable legacy that we will continue to learn from and treasure.

Of course I hardly knew John, since I have never worked in the UK, and only met him first at APL events in the 90’s, then Dyalog meetings. I never thought my skills were sufficient enough to “talk shop” with him, but he was always a great dinner companion and fun to hang out with in the bar, someone with a great air of lightheartedness and humour at all times it seemed. With John at the table, I knew the conversation would be entertaining and far-ranging, likely anything but APL. He was very witty, always looking for a way to turn the situation into a jovial affair. But you knew lurking below was a man of great passion and intellect for this language we share. In other words, he embodied an ideal balance between a dedicated expert, and an everyday decent human being.

I especially enjoyed the delightful banter and sarcasm between John and Flora at those dinner tables. It was a bit like listening to one of those verbal jousting matches in a Shakespearian play, always a highlight of the annual gatherings. They obviously had a special bond.

I will certainly miss John for those happy moments he brought to our encounters and shared with the APL community. I wish I had had a chance to work more closely with him and learn, not just APL but how to better live a life well lived.

In Memory of John Scholes

1948 – 2019

John’s family welcome donations in his name to the British Lung Foundation.