Discovering APL: Difference between revisions

Jump to navigation Jump to search
46 bytes added ,  23:35, 3 November 2019
Miraheze>Adám Brudzewsky
(Created page with ":''A brief review of APL, its origins and what makes it distinctive.'' By Stephen Taylor. == Origins == Early programming languages were designed to control what computers d...")
 
Miraheze>Adám Brudzewsky
Line 5: Line 5:
Early programming languages were designed to control what computers do. At Harvard in the 1950s Ken Iverson was revising traditional mathematical notation. He wanted a consistent language for describing operations on arrays, a notation a machine could interpret.
Early programming languages were designed to control what computers do. At Harvard in the 1950s Ken Iverson was revising traditional mathematical notation. He wanted a consistent language for describing operations on arrays, a notation a machine could interpret.


Iverson was a key member of the early computer science community. At Harvard with [[Wikipedia:Howard Aiken|Howard Aiken]] he taught the world’s first classes on computing. When he published his math notation, he titled the book ''[[A Programming Language]]'' (Wiley, New York, 1962). His teaching assistant at Harvard, [[Wikipedia:Fred Brooks|Fred Brooks]], author of ''[[Wikipedia:The Mythical Man-Month|The Mythical Man-Month]]'', was [[IBM]]’s project manager for the development of OS/360, its first multi-tasking operating system. (OS/360 was the first operating system ever [[http://www.research.ibm.com/journal/sj/032/falkoff.pdf|described formally]] — in Iverson notation, of course.) Iverson also went to IBM, who made him a Research Fellow, and [[APL\1130|implemented his notation on an 1130 computer]], where it was dubbed APL after the title of his book. APL\1130 was providing personal computing to a community of users well before OS/360 came to life.
Iverson was a key member of the early computer science community. At Harvard with [[Wikipedia:Howard Aiken|Howard Aiken]] he taught the world’s first classes on computing. When he published his math notation, he titled the book ''[[A Programming Language]]'' (Wiley, New York, 1962). His teaching assistant at Harvard, [[Wikipedia:Fred Brooks|Fred Brooks]], author of ''[[Wikipedia:The Mythical Man-Month|The Mythical Man-Month]]'', was [[IBM]]’s project manager for the development of OS/360, its first multi-tasking operating system. (OS/360 was the first operating system ever [https://web.archive.org/web/20070710100707/http://www.research.ibm.com/journal/sj/032/falkoff.pdf described formally] — in [[Iverson notation]], of course.) Iverson also went to IBM, who made him a Research Fellow, and [[APL\1130|implemented his notation on an 1130 computer]], where it was dubbed APL after the title of his book. APL\1130 was providing personal computing to a community of users well before OS/360 came to life.


The 1960s and 70s saw many efforts to produce VHLLs (Very High Level Languages) that would lower the skill requirements for programmers, a general strategy of industrialisation. The APL community played no part in this. Iverson stressed the importance of APL as a “tool of thought”, a notation to help humans describe and solve complex problems. We were not trying to make everyday programming easy; we wanted to solve harder problems faster. (The complete code for calculating the mean of a list of numbers requires 3 characters.) Ironically, experience shows APLs are easier for novices to learn than conventional programming languages.
The 1960s and 70s saw many efforts to produce VHLLs (Very High Level Languages) that would lower the skill requirements for programmers, a general strategy of industrialisation. The APL community played no part in this. Iverson stressed the importance of APL as a “tool of thought”, a notation to help humans describe and solve complex problems. We were not trying to make everyday programming easy; we wanted to solve harder problems faster. (The complete code for calculating the mean of a list of numbers requires 3 characters.) Ironically, experience shows APLs are easier for novices to learn than conventional programming languages.
Line 16: Line 16:


As support now ebbs generally from the Software Engineering movement, the APLs remain the sharpest tool in the box, with a strong tradition of agile development.
As support now ebbs generally from the Software Engineering movement, the APLs remain the sharpest tool in the box, with a strong tradition of agile development.
== Why vector languages? ==
== Why vector languages? ==


Navigation menu