John Scholes

John Morley Scholes (1948–2019) was a British computer scientist. His professional career was devoted to the development of APL. He was the first lead developer at what eventually became Dyalog Ltd. and kept working for the company until his death, since when he has dedicated himself to the art of writing perfect programs. He was the designer and implementer of Dyalog APL's direct functions (dfns, pronounced "dee funs"), a major distinguishing advance which was since copied by all new APLs; NARS2000, GNU APL, ngn/apl, dzaima/APL, etc. He also advocated for simplicity in computer systems.

In 1995 he and Pete Donnelly received the Iverson Award for their role in creating and promoting Dyalog APL.

In 2009, Scholes produced an explanatory video of his implementation of John Conway's "Game of Life". It has since gathered over 200 000 views. He has also produced numerous, always well-received, presentation and papers on various subjects from the technical to the humorous.

Publications

 * "YSM: a full-screen manager for Dyalog APL" at APL89. With S. D. Curtin.

Dyalog user meetings and webinar

 * Dyalog '06 04: Language Extensions
 * Dyalog '06  07: Functions as Results (materials)
 * Dyalog '07 09: Version 12.0 Performance Enhancements (with Nic Delcros)
 * Dyalog '07  10: An Investigation into Higher Level Operators
 * Dyalog '08 06: Interpreter Performance (with Nic Delcros)
 * Dyalog '08  08: Journaled Files (materials) (with Richard Smith)
 * Dyalog '08  A Plea for Simplicity
 * Dyalog '09 19: Complex Numbers
 * Dyalog '09  C03: Introduction to D-Functions (dfns) (VIDEO 1 (124 mins), VIDEO 2 (67 mins))
 * Dyalog '10 P01: APL# – An APL for Microsoft .NET, Mono, Silverlight and Moonlight (materials) (with Morten Kromberg and Jonathan Manktelow)
 * Dyalog '10  P02: Unifying Traditional Functions and Dfns in APL# (materials) (with Morten Kromberg and Jonathan Manktelow)
 * Dyalog '10  WS2: Introduction to Dfns (VIDEO 1 (67 mins), VIDEO 2 (34 mins))
 * Dyalog '11 D04: Introducing the Dyalog '11 Conference Edition (with Roger Hui)
 * Dyalog '11  D06: Function Trains for Dyalog APL
 * Dyalog '11  D07: Closures
 * Dyalog '11  D08: APL# (materials) (with Morten Kromberg and Jonathan Manktelow)
 * Dyalog '11  D18: What is Functional Programming? (with Roger Hui)
 * Dyalog '12 D04: Potential Version 14.0 Language Features (materials) (with Roger Hui)
 * Dyalog '12  D06: State-free Programming
 * Dyalog '13 D09: Train Spotting in Version 14.0 (slides)
 * Dyalog '13  D13: Social Skills for Programmers
 * Dyalog '14 D09: Distractions (slides)
 * Dyalog '15 D16: Future Operator Proposals: Cut, Under, Merge (materials) (with Roger Hui)
 * Dyalog '16 D06: New Primitive Functions and Operators (materials, demo script) (with Roger Hui)
 * Dyalog '16  L04: Dyalog Implementation – The Early Years (with Stephen Taylor and Geoff Streeter)
 * Dyalog webinar: A closer look at the new primitives in version 16.0 (with Morten Kromberg)
 * Dyalog '17 D04: A Case Study – Recoding from Procedural to Denotative Style (slides)
 * Dyalog '17  D15: TAO – Total Array Ordering (materials) (with Roger Hui)
 * Dyalog '17  D17: Prefix Agreement: A Proposal for an Extension to the   Operator (slides)
 * Dyalog '18 D10: Dfns – Past, Present and Future (slides)

Websites

 * Wikipedia: John Scholes
 * Direct functions
 * Memorial website

Selected works

 * Video: Game of Life
 * Video: A Sudoku Solver in APL
 * Video: Depth-first search in APL
 * Article: How to Write Computer Programs