0:00 / 0:00
#jlanguage#apl#arrayprogramming
"The J Programming Language" by Tracy Harms (2013)
Strange Loop Conference
88K subscribers • 114 videos on Hallway • Conference channel
- Recommended by 2 people: 1 on Lobsters and 1 in engineering communities.
- A classic. People kept recommending it from 2021 to 2024.
Intermediate. Assumes working knowledge.
15K views5 years ago2 recommendations
Programming languagesLanguage design and type systemsFunctional programming
Tracy Harms introduces the J programming language, exploring its array-centric paradigm, tacit form, and mathematical syntax.
"A language that doesn't affect the way you think about programming is not worth knowing." – Alan Perlis J has been an "emerging language" for 23 years. It's strange in appearance, and requires a style of thinking that feels awkward for a while. Learning is worth the effort, though, because with J, the way you look at a problem is often radically different. Like APL, its predecessor, J sees everything as an array. Computations are expressed as pipelines among functions that apply on the appropriate axis of each array. With some practice, a J programmer learns to fold, flip and manipulate arrays in her mind. The experience is mind-blowing, and the resulting solutions become sleek and simple. Diverging from its APL roots, J introduces "tacit form" (where arguments are implied.) This concept is fundamental to the definition of J programs. For example, inherent in J's syntax is the "verb train", a kind of branching composition. This lets you naturally express programs as relations among functions. J embodies a peculiar mixture of mathematical purity and industrial practicality. If you're excited by combinatorial, concatenative, point-free, or functional programming techniques in general, J will inspire you and give you new ways of seeing problems. If you're looking for a mature scripting language with a stable implementation, you'll find J to be a pleasantly functional workhorse. In this talk, I will introduce you to patterns of thinking that make J coding possible, and provide a rich introduction to the language. You will come away with a clearer understanding of the concepts that are crucial to confident reading and writing of J notation. While no previous knowledge of J will be assumed, people with some previous exposure will get the most benefit. Tracy Harms Applied Performance Technologies @kaleidic Tracy Harms has worked in software development on and off since 1978. He presently helps create test automation for a major scientific document search service. Recorded at the Emerging Languages Camp at Strange Loop (thestrangeloop.com) in St. Louis, MO, Sep 2013.Why it's here
2 people recommend thisWhat people say. Recommended for its explanation of the J language's unique features, such as right-to-left parsing and tacit programming.
u/Zwarakatranemiain r/ProgrammingLanguages • Recommends
On “What is the coolest feature of a programming language you have seen?”
Parsing from right to left in the APL family of languages makes the parentheses redundant.
Example in J:
`2 * 3 + 4 % 8 + 1`
This is the same as:
`(2 * ( 3 + (4 % ( 8 + 1))))`
, where by `%` is denoted the division operator.
Code
There are many more fascinating constructs about this language, for example composition, but since I'm no expert, I'll let someone else do the talking.