John M. Scholes (computer Scientist)
   HOME

TheInfoList



OR:

John Morley Scholes (1948–2019) was a British
computer scientist A computer scientist is a scientist who specializes in the academic study of computer science. Computer scientists typically work on the theoretical side of computation. Although computer scientists can also focus their work and research on ...
. In his professional career he was devoted to the development of the
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
APL. He was the designer and implementer of direct functions.


Personal

John Scholes was born on 24 April 1948 to Gerry and Amy Scholes. He grew up in
Leamington Spa Royal Leamington Spa, commonly known as Leamington Spa or simply LeamingtonEven more colloquially, also referred to as Lem or Leam (). (), is a spa town and civil parish in Warwickshire, England. Originally a small village called Leamington Pri ...
, Warwickshire, England, and attended Leamington College for Boys between 1960 and 1966. Between 1966 and 1969 he attended the
University of Manchester The University of Manchester is a public university, public research university in Manchester, England. The main campus is south of Manchester city centre, Manchester City Centre on Wilmslow Road, Oxford Road. The University of Manchester is c ...
and received a BSc (with honours) in mathematics. Scholes enjoyed poetic and romantic qualities in his life. Apart from APL, he also found beauty in nature, opera, the music of
Tom Waits Thomas Alan Waits (born December 7, 1949) is an American musician, composer, songwriter, and actor. His lyrics often focus on society's underworld and are delivered in his trademark deep, gravelly voice. He began in the American folk music, fo ...
, the literature of
James Joyce James Augustine Aloysius Joyce (born James Augusta Joyce; 2 February 1882 – 13 January 1941) was an Irish novelist, poet, and literary critic. He contributed to the modernist avant-garde movement and is regarded as one of the most influentia ...
, the poetry of
W. B. Yeats William Butler Yeats (, 13 June 186528 January 1939), popularly known as W. B. Yeats, was an Irish poet, dramatist, writer, and literary critic who was one of the foremost figures of 20th-century literature. He was a driving force behind the ...
. He was a member of the Joyce society in
Dublin Dublin is the capital and largest city of Republic of Ireland, Ireland. Situated on Dublin Bay at the mouth of the River Liffey, it is in the Provinces of Ireland, province of Leinster, and is bordered on the south by the Dublin Mountains, pa ...
. In 2013, he and his wife Flora Dowling went to
Sligo Sligo ( ; , meaning 'abounding in shells') is a coastal seaport and the county town of County Sligo, Ireland, within the western province of Connacht. With a population of 20,608 in 2022, it is the county's largest urban centre (constituting 2 ...
to the W. B. Yeats Summer School and met the poet
Seamus Heaney Seamus Justin Heaney (13 April 1939 – 30 August 2013) was an Irish Irish poetry, poet, playwright and translator. He received the 1995 Nobel Prize in Literature. Among his best-known works is ''Death of a Naturalist'' (1966), his first m ...
the summer before Heaney died. The APL side and the romantic side often met: The Depth-First Search video (
below Below may refer to: *Earth *Ground (disambiguation) *Soil *Floor * Bottom (disambiguation) *Less than *Temperatures below freezing *Hell or underworld People with the surname * Ernst von Below (1863–1955), German World War I general * Fred Belo ...
) was recorded at dawn on the
summer solstice The summer solstice or estival solstice occurs when one of Earth's poles has its maximum tilt toward the Sun. It happens twice yearly, once in each hemisphere ( Northern and Southern). The summer solstice is the day with the longest peri ...
of 2014, with birdsong in the air, while he and his wife were on a 21-day Zen retreat in France led by
Thích Nhất Hạnh Thích Nhất Hạnh ( ; , Huế dialect: ; born Nguyễn Xuân Bảo; 11 October 1926 – 22 January 2022) was a Vietnamese Thiền Buddhist monk, peace activist, prolific author, poet, and teacher, who founded the Plum Village Tradition, ...
. Scholes was pleased with both the technical content and the circumstances of that work.


Career

Scholes's first job was as a trainee computer programmer with
International Computers Limited International Computers Limited (ICL) was a British computer hardware, computer software and computer services company that operated from 1968 until 2002. It was formed through a merger of International Computers and Tabulators (ICT), English Ele ...
(ICL) (1969–70) and from there he went on to the Operations Research Department of
WS Atkins Atkins was a British Multinational corporation, multinational construction, design, engineering and business services company. It was formerly listed on the London Stock exchange and had a London headquarters. In July 2017 the company was bough ...
in
Epsom Epsom is a town in the borough of Epsom and Ewell in Surrey, England, about south of central London. The town is first recorded as ''Ebesham'' in the 10th century and its name probably derives from that of a Anglo-Saxon settlement of Britain ...
, Surrey (1971–75) and then to the Sales Support Department in
Warrington Warrington () is an industrial town in the Borough of Warrington, borough of the same name in Cheshire, England. The town sits on the banks of the River Mersey and was Historic counties of England, historically part of Lancashire. It is east o ...
, Lancashire (1976–77). Between 1977 and 1978 he worked with the
European Space Agency The European Space Agency (ESA) is a 23-member International organization, international organization devoted to space exploration. With its headquarters in Paris and a staff of around 2,547 people globally as of 2023, ESA was founded in 1975 ...
in Madrid, Spain as a programmer for the
International Ultraviolet Explorer International Ultraviolet Explorer (IUE or Explorer 57, formerly SAS-D) was the first Space telescope, space observatory primarily designed to take ultraviolet (UV) electromagnetic spectrum. The satellite was a collaborative project between NA ...
project. He then returned to ICL Dataskil working on APL for the VME/B operating system (1978–82). In 1982, he started the Dyalog APL project for
Unix Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
machines, and in 1988 became a partner and director of the Dyalog Company. In 2004, Scholes sold his shares in the company, but continued as a consultant and, in his words, pursued his passionate interest in APL programming on various mathematical topics in general and
functional programming In computer science, functional programming is a programming paradigm where programs are constructed by Function application, applying and Function composition (computer science), composing Function (computer science), functions. It is a declarat ...
and dfns in particular. Or "
nerd A nerd is a person seen as overly intellectual, obsessive, introverted, or lacking social skills. Such a person may spend inordinate amounts of time on unpopular, little known, or non-mainstream activities, which are generally either highly t ...
ing", as he also called it.


Direct functions (dfns)

Kenneth E. Iverson, the inventor of APL, was dissatisfied with the way user functions were defined. In 1974, he devised "formal function definition" or "direct definition" for use in exposition. A direct definition has two or four parts, separated by colons: name : expression name : expression0 : proposition : expression1 Within a direct definition, denotes the left argument and the right argument. In the first instance, the result of is the result of the function; in the second instance, the result of the function is that of if evaluates to 0, or if it evaluates to 1. Assignments within a direct definition are dynamically local. Examples of using direct definition are found in the 1979
Turing Award The ACM A. M. Turing Award is an annual prize given by the Association for Computing Machinery (ACM) for contributions of lasting and major technical importance to computer science. It is generally recognized as the highest distinction in the fi ...
Lecture and in books and application papers. Direct definition was too limited for use in larger systems. The ideas were further developed by multiple authors in multiple works, but the results were unwieldy. Of these, the "alternative APL function definition" of Bunda in 1987 came closest to current facilities, but is flawed in conflicts with existing symbols and in error handling which would have caused practical difficulties, and was never implemented. The main distillates from the different proposals were that (a) the function being defined is
anonymous Anonymous may refer to: * Anonymity, the state of an individual's identity, or personally identifiable information, being publicly unknown ** Anonymous work, a work of art or literature that has an unnamed or unknown creator or author * Anonym ...
, with subsequent naming (if required) being effected by assignment; (b) the function is denoted by a symbol and thereby enables
anonymous recursion In computer science, anonymous recursion is Recursion (computer science), recursion which does not explicitly call a function by name. This can be done either explicitly, by using a higher-order function – passing in a function as an argument and ...
. In 1996, Scholes invented direct functions or dfns (pronounced "dee funs"), a major distinguishing advance of early 21st century APL over prior versions. Dfns are a unique combination of
array programming In computer science, array programming refers to solutions that allow the application of operations to an entire set of values at once. Such solutions are commonly used in computational science, scientific and engineering settings. Modern program ...
,
higher-order function In mathematics and computer science, a higher-order function (HOF) is a function that does at least one of the following: * takes one or more functions as arguments (i.e. a procedural parameter, which is a parameter of a procedure that is itself ...
s, and
functional programming In computer science, functional programming is a programming paradigm where programs are constructed by Function application, applying and Function composition (computer science), composing Function (computer science), functions. It is a declarat ...
. The ideas originated in 1989 when he read a special issue of ''
The Computer Journal ''The Computer Journal'' is a peer-reviewed scientific journal covering computer science and information systems. Established in 1958, it is one of the oldest computer science research journals. It is published by Oxford University Press on behal ...
'' on functional programming. He then proceeded to study functional programming and became strongly motivated ("sick with desire", like Yeats) to bring these ideas to APL. He initially operated in
stealth Stealth may refer to: Military *Stealth technology, technology used to conceal ships, aircraft, and missiles **Stealth aircraft, aircraft which use stealth technology ** Stealth ground vehicle, ground vehicles which use stealth technology ** Ste ...
because he was concerned the changes might be judged too radical and an unnecessary complication of the language; other observers say that he operated in stealth because Dyalog colleagues were not so enamored and thought he was wasting his time and causing trouble for people. Dfns were first presented in the Dyalog Vendor Forum at the APL '96 Conference and released in Dyalog APL in early 1997. Acceptance and recognition were slow in coming. As late as 2008, in ''Dyalog at 25'', a publication celebrating the 25th anniversary of Dyalog Ltd, dfns were barely mentioned (mentioned twice as "dynamic functions" and without elaboration). As of 2019, dfns are implemented in Dyalog APL, NARS2000, and ngn/apl. They also play a key role in efforts to exploit the computational capabilities of a
GPU A graphics processing unit (GPU) is a specialized electronic circuit designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal ...
(graphics processing unit). Dfns are illustrated here with an example. Much more extensive explanation and examples are found in the direct functions article and in the references.
Quicksort Quicksort is an efficient, general-purpose sorting algorithm. Quicksort was developed by British computer scientist Tony Hoare in 1959 and published in 1961. It is still a commonly used algorithm for sorting. Overall, it is slightly faster than ...
on an array works by choosing a "pivot" at random among its major cells, then catenating the sorted major cells which strictly precede the pivot, the major cells equal to the pivot, and the sorted major cells which strictly follow the pivot, as determined by a comparison function . Defined as a dop (direct
operator Operator may refer to: Mathematics * A symbol indicating a mathematical operation * Logical operator or logical connective in mathematical logic * Operator (mathematics), mapping that acts on elements of a space to produce elements of another sp ...
) : Q← ⍝ precedes ⍝ follows ⍝ equals 2 (×-) 8 8 (×-) 2 8 (×-) 8 ¯1 1 0 x← 2 19 3 8 3 6 9 4 19 7 0 10 15 14 (×-) Q x 0 2 3 3 4 6 7 8 9 10 14 15 19 19 is a variant that catenates the three parts enclosed by the function instead of the parts ''per se''. The three parts generated at each recursive step are apparent in the structure of the final result. Applying the function derived from to the same argument multiple times gives different results because the pivots are chosen at random.
In-order traversal In computer science, tree traversal (also known as tree search and walking the tree) is a form of graph traversal and refers to the process of visiting (e.g. retrieving, updating, or deleting) each node in a tree data structure, exactly once. S ...
of the results does yield the same sorted array. Q3← (×-) Q3 x ┌────────────────────────────────────────────┬─────┬┐ │┌──────────────┬─┬─────────────────────────┐│19 19││ ││┌──────┬───┬─┐│6│┌──────┬─┬──────────────┐││ ││ │││┌┬─┬─┐│3 3│4││ ││┌┬─┬─┐│9│┌┬──┬────────┐│││ ││ │││││0│2││ │ ││ ││││7│8││ │││10│┌──┬──┬┐││││ ││ │││└┴─┴─┘│ │ ││ ││└┴─┴─┘│ │││ ││14│15││││││ ││ ││└──────┴───┴─┘│ ││ │ │││ │└──┴──┴┘││││ ││ ││ │ ││ │ │└┴──┴────────┘│││ ││ ││ │ │└──────┴─┴──────────────┘││ ││ │└──────────────┴─┴─────────────────────────┘│ ││ └────────────────────────────────────────────┴─────┴┘ (×-) Q3 x ┌───────────────────────────┬─┬─────────────────────────────┐ │┌┬─┬──────────────────────┐│7│┌────────────────────┬─────┬┐│ │││0│┌┬─┬─────────────────┐││ ││┌──────┬──┬────────┐│19 19│││ │││ │││2│┌────────────┬─┬┐│││ │││┌┬─┬─┐│10│┌──┬──┬┐││ │││ │││ │││ ││┌───────┬─┬┐│6│││││ │││││8│9││ ││14│15││││ │││ │││ │││ │││┌┬───┬┐│4│││ │││││ │││└┴─┴─┘│ │└──┴──┴┘││ │││ │││ │││ │││││3 3│││ │││ │││││ ││└──────┴──┴────────┘│ │││ │││ │││ │││└┴───┴┘│ │││ │││││ │└────────────────────┴─────┴┘│ │││ │││ ││└───────┴─┴┘│ │││││ │ │ │││ │││ │└────────────┴─┴┘│││ │ │ │││ │└┴─┴─────────────────┘││ │ │ │└┴─┴──────────────────────┘│ │ │ └───────────────────────────┴─┴─────────────────────────────┘ The above formulation is not new; see for example Figure 3.7 of the classic ''The Design and Analysis of Computer Algorithms''. However, unlike the pidgin ALGOL program in Figure 3.7, and are executable, and the partial order used in the sorting is an operand, the the examples above.


Articles and presentations

* 1985 ''Operators & Nested Arrays in Dyalog APL'' * 1989 ⎕''SM: A Full-Screen Manager for Dyalog APL'' * 1990 ''Workshop on Defined Operators'' * 1990 ''A New Development Environment in Dyalog APL'' * 1994 ''Meeting: Dyalog APL Namespaces'' * 1996 ''Direct Functions in Dyalog APL'' * 1998 ''APL98 Workshop – Threads in Dyalog APL'' * 1998 ''Threads: An Introduction to Multithreading'' * 2001 ''D: A Functional Subset of Dyalog APL'' * 2001 ''Letter: Localising the Effects of System Functions in D'' * 2003 ''dfns@dyalog.com'' * 2003 ''Hungarian Method Cost Assignment'' * 2004 ''A Note on Graphs'' * 2005 ''How to Write Computer Programs'' * 2006 ''Language Extensions'' * 2006 ''Functions as Results'' * 2007 ''Version 11.1 Performance Enhancements'' * 2007 ''An Investigation into Higher Level Operators'' * 2008 ''Interpreter Performance'' * 2008 ''Journaled Files'' (video) (text) * 2008 ''A Plea for Simplicity'' (video) * 2009 ''Conway's Game of Life in APL'' (video) * 2009 ''Introduction to D-functions'' (videos 1, 2) * 2009 ''Session Whizbangs'' * 2009 ''Complex Numbers'' (video) * 2010 ''Workshop—Introduction to D-functions'' (video 1) (video 2) * 2011 ''Conference Edition Workshop'' * 2011 ''Introducing the Dyalog '11 Conference Edition'' * 2011 ''APL#'' (video) (text) * 2011 ''Function Trains for Dyalog APL'' * 2011 ''What is Functional Programming?'' (video) * 2011 ''Closures'' * 2012 ''Potential Version 14.0 Language Features'' (video) (text) * 2012 ''State-Free Programming'' (video) * 2012 ''Calling Alan Turing'' (video) * 2012 ''A Sudoku Solver in APL'' (video) * 2013 ''Train Spotting in Version 14.0'' (video) (text) * 2013 ''Social Skills for Programmers'' (video) * 2014 ''Depth-First Search in APL'' (video) * 2014 ''Distractions'' (video) * 2015 ''Dya(b)log'' (video) (text) * 2015 ''Future Operator Proposals: Cut, Under, and Merge'' (video) (text) (text) (text) * 2016 ''New Primitive Functions and Operators'' (video) (text) (script) * 2016 ''Dyalog Implementation: The Early Years'' (video) * 2017 ''A Case Study: Recoding from Procedural to Denotative Style'' (video) (text) * 2018 ''Dfns—Past, Present and Future'' (video) (text)


Wit

Scholes was well known among colleagues for his wit, sense of humor, and comic timing. His "after dinner" presentations at Dyalog conferences were highly anticipated events. A selection of them from the list above: * 2008 ''A Plea for Simplicity'' (video) * 2009 ''Complex Numbers'' (video) * 2011 ''What is Functional Programming?'' (video) * 2012 ''State-Free Programming'' (video) * 2012 ''Calling Alan Turing'' (extract of previous item, video) * 2013 ''Social Skills for Programmers'' (video) * 2014 ''Distractions'' (video) Other examples can be found in ''Scholisms''.


References


External links

* , John Scholes (1948–2019): Genius, Gentleman, and Mischievous Schoolboy
Dyalog: Direct functions
{{DEFAULTSORT:Scholes, John M. 1948 births 2019 deaths Alumni of the University of Manchester APL implementers British computer programmers Functional programming People from Leamington Spa Programming language designers Programming language researchers