Henry Highsmith Rich is a J programmer, currently the most active developer of the J language. He is also known for the book J for C Programmers and his Dissect tool.
Rich, a native of Raleigh, North Carolina, began programming around 1966 at the age of 13. He used BASIC and ALGOL on his school's time sharing system. After college he began work at IBM, where one summer he was briefly introduced to APL. Despite his enthusiasm for APL, he continued working with scalar languages until the 1990s, when he had a choice of language for a project, investigated APL-like options for it, and discovered J. Rich continued work with the language, and built a stock-trading program to help support his family while homeschooling his daughter. He also wrote the book J for C Programmers, first published online in 2002.
Rich began teaching at Raleigh Charter High School when his daughter chose to attend school there. He taught math and Latin in addition to computer science courses using J—Rich noted little trouble in teaching J to students unfamiliar with programming, but more with those who had some knowledge of C or BASIC. His students there included Marshall Lochbaum.
Rich left teaching to again pursue a career in programming, using both J and low-level languages. He consulted at companies including J user Monument AI, and also began working with Jsoftware to contribute to the J implementation. In this way he succeeded Roger Hui, whose J efforts had fallen off since joining Dyalog Ltd. in 2011.
Rich has written a substantial amount of material to help others learn J, including J for C Programmers. He was a major contributor to the NuVoc project, a complete reference for J primitives with the goal of being more accessible than the J dictionary. The J program Dissect has similar goals. It presents an interactive display of the functionality and intermediate results in a line of J code.
Rich began working to improve the performance of the J interpreter around 2016. Releases beginning with major version 9 in 2019 also began to show significant influence from Rich's design work. Changes in this period include the introduction of a set of primitives such as
F. giving finer control over reduction-type operations, a "direct definition" syntax for functions enclosed with
}}, and the removal of calculus modifiers from the J interpreter in favor of a J package.