Stanford Seminar - Concatenative Programming: From Ivory to Metal
Stanford Online2 HN recommenders · recommended in 3 months, 2020-2022
14K views · 8 years ago · talk · evergreen
Jon Purdy's Stanford EE380 seminar giving an overview of concatenative programming, from function composition theory and history down to low-level implementation and correctness benefits.
HN recommends it as the best talk on concatenative languages and their mathematical properties.
1:04:16Simon Peyton-Jones: Escape from the ivory tower: the Haskell journey
Churchill College, University of Cambridge
170K views • 9 years ago
12:56Stephen Wolfram's Introduction to the Wolfram Language
Wolfram
924K views • 12 years ago
59:03Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '17
Dyalog User Meetings
7K views • 9 years ago
1:07:22Invited Talk - Guy Steele
ClojureTV
39K views • 9 years ago
1:12:10Practical Common Lisp
Google TechTalks
98K views • 19 years ago
1:13:10Parsing with Derivatives
Stanford
13K views • 15 years ago
1:00:58The Next Five Years of ClojureScript - David Nolen
Metosin
19K views • 10 years ago
17:26Lecture 1 | Programming Paradigms (Stanford)
Stanford
1.2M views • 18 years ago
51:40Domain Modeling Made Functional - Scott Wlaschin
NDC Conferences
71K views • 9 years ago
1:28:59Clojure for Lisp Programmers Part 1 - Rich Hickey
ClojureTV
25K views • 13 years ago
1:05:51The Functional Programmer's Toolkit - Scott Wlaschin
NDC Conferences
79K views • 7 years ago
1:14:52Effective Programs - 10 Years of Clojure - Rich Hickey
ClojureTV
176K views • 9 years ago
1:33:37Adventure with Types in Haskell - Simon Peyton Jones (Lecture 1)
jasonofthel33t
69K views • 12 years ago
1:12:56Lecture 1A: Overview and Introduction to Lisp
MIT OpenCourseWare
420K views • 7 years ago
8:45Racket: Why I Think It’s a Great Language, and Why I’m Not Using It Anymore
Leandro Facchinetti
19K views • 5 years ago
58:22Lecture 1B | MIT 6.001 Structure and Interpretation, 1986
MIT OpenCourseWare
116K views • 17 years ago
50:49Domain Modeling Made Functional - Scott Wlaschin - KanDDDinsky 2019
KanDDDinsky
74K views • 6 years ago
42:31"Datafun: a functional query language" by Michael Arntzenius
Strange Loop Conference
9K views • 9 years ago
33:32Condition Systems in an Exceptional Language - Chris Houser
ClojureTV
16K views • 10 years ago
1:01:45Four Languages from Forty Years Ago - Scott Wlaschin
NDC Conferences
33K views • 8 years ago
4 comments from Hacker News
It comes from Linear Logic, where there's no inference A&B->A. I think the point of the name is "there's always progress". This talk explains some other origins as well as the connections between different logics to different type systems (though the focus is on stack languages) ▶ this video
I didn't see it linked from the article, Jon Purdy has a great talk about this too: "Concatenative Programming: From Ivory to Metal" (2017) ▶ this video There's also "A Conversation with Manfred von Thun" link which is worth reading (IMO) if you're interested in concatenative languages. He's the creator of Joy. I've been working with Joy over the last few years now and I really think there's something there. It seems to combine the best features of both Forth and Lisp.
Hear, hear! Wise words from the genius who created Turing Drawings. It's becoming more and more important to treat complexity as a kind of technical debt that has the potential at any moment to metastasize into eldritch horror. I've been playing with what you could call a minimalist programming language: Joy created by Manfred von Thun (who was a philosophy professor! See "A Conversation with Manfred von Thun" link ) It combines features of Lisp and Forth, and I suspect it may be the simplest useful language. The syntax is enormously simple, and the semantics are likewise simple. It's easy to reason about functions and derive them in a mathematical way using simple algebra, so it's hard to introduce bugs. I recently found a very good 2017 talk by Jon Purdy describing concatinative programming and it's quirks and (potential) advantages: Stanford Seminar - "Concatenative Programming: From Ivory to Metal" ▶ this video Anyway, it's made me "allergic" to complexity. I tried Rust. Wrote the beginning of a Joy interpreter. I paused for a month and came back to it and it had become Greek to me, and I can't read Greek. :( Now part of that is just I 'm getting old, but a lot of it is the complexity of Rust. I don't want to pick on Rust though, complexity itself is the enemy (Rust is, if anything, an improvement on most of what has come before it, eh? I think only Ada can really be said to be Rust's peer?)
I don't know if it's Baader-Meinhof or what, but I'm seeing concatenative languages all over the place now. Which is great, because now I'm planning to write my own! My gut says that a concatenative language could be ideal for competitive programming, where you want to quickly apply various transformations to your input and immediately see the result. Here's a talk I watched recently describing some of the neat mathematical properties of concatenative languages: ▶ this video