Skip to content
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

YouTube
  • 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 this

What people say. Recommended for its explanation of the J language's unique features, such as right-to-left parsing and tacit programming.

skuzzymigleton Lobsters • Recommends

The J Programming Language (2013)

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.