Best Programming language design Videos
「Programming language design」下面有193部被不同的人、在不同月份推荐过的视频。挑的时候先看对象:入门15部,适合还没学过的人;进阶107部,适合已经懂术语的人;普通向21部,按兴趣就能看;更硬的50部,留给想看推导或细节的人。这一类数量最多的是演讲,所以它们的共同点是一位讲者把一个判断讲完,例子是为了撑住这个判断。常出现的频道包括Strange Loop Conference、ClojureTV、Google TechTalks。目录给这个主题划的范围是:Programming language design: language semantics, type systems, type theory, syntax, language features, Jai, Haskell type classes, Rust design, language history, why languages succeed or fail.如果只看三部,就从《How Python was Shaped by leaky Internals, Armin Ronacher, Flask framework》开始,它负责把问题讲出画面;然后看《Why Isn't Functional Programming the Norm? – Richard Feldman》,换一种讲法或例子;最后看《Maybe Not - Rich Hickey》,留给已经有基础的人。页面按每页24部切开,顺序看的是被推荐跨越了多少个月,不是播放量。每条标题下面那一句是这部片子自己的内容说明,用来区分它在讲定义、过程、演示还是观点。点进去能看到推荐原话、原文链接和适合谁看。看的时候把强烈推荐当成有人明确叫你去看,把引用当成只是拿来举例,把批评留下来对照,不要把每条评论都当成同一力度。

Stephen Wolfram's Introduction to the Wolfram Language
Stephen Wolfram gives a 13-minute tour of the Wolfram Language, a symbolic, functional programming language with a built-in knowledgebase.

Brendan Eich: JavaScript, Firefox, Mozilla, and Brave | Lex Fridman Podcast #160
A roughly three-hour Lex Fridman podcast conversation with Brendan Eich, creator of JavaScript and co-founder of Mozilla and Brave.

Rust's Journey to Async/Await
Steve Klabnik walks through the history of Rust and how its design evolved toward async/await, including the alternatives tried and dropped.

RustLatam 2019 - Without Boats: Zero-Cost Async IO
Without Boats, a Rust language team member, explains the design of Rust's async/await at RustLatam 2019.

Alto System Project: Dan Ingalls demonstrates Smalltalk
A roughly two-hour demonstration by Dan Ingalls of Smalltalk running on the Computer History Museum's restored Xerox Alto.

Self and Self: Whys and Wherefores
David Ungar of IBM Research reflects at Stanford on the Self language project and argues the real legacy of ideas is the people.

Ron Pressler - Pull Push: Please stop polluting our imperative languages with pure concepts-Curry On
Ron Pressler's Curry On 2015 talk arguing that imperative languages should not be polluted with pure functional concepts like monads.

2017 ACM PPoPP Keynote: It's Time for a New Old Language
Guy Steele's PPoPP 2017 keynote surveying the history of computer science metanotation, including BNF, inference rules, and overline notation.

De-fragmenting C++: Making Exceptions and RTTI More Affordable and Usable - Herb Sutter CppCon 2019
Herb Sutter's CppCon 2019 talk on the split in the C++ community over exceptions and RTTI.

Lecture 1 | Programming Paradigms (Stanford)
The first lecture of Stanford's CS107 Programming Paradigms, taught by Jerry Cain, giving an overview of the course.

"An approach to computing and sustainability inspired from permaculture" by Devine Lu Linvega
Devine Lu Linvega of Hundred Rabbits talks about low-power, offline computing, esoteric languages and the Uxn virtual machine, informed by years of sailing the Pacific.

Practical Common Lisp
Peter Seibel's 2006 Google TechTalk on Practical Common Lisp, framed by the Sapir-Whorf hypothesis and Paul Graham's Blub paradox.

APL demonstration 1975
A 1975 live demonstration of the APL language by Imperial College professor Bob Spence, showing a REPL on a modified typewriter terminal and APL's appeal to non-programmers.

Building Your Own Dynamic Language
Ian Piumarta's 2007 Stanford EE380 lecture on building a dynamic programming environment from the ground up, from the Viewpoints Research Institute's work.

Edwin Brady - Idris 2: Type-driven development of Idris | Code Mesh LDN 18
Edwin Brady presents Idris 2, a rewrite of the Idris dependently typed language, and shows type-driven development in practice.

Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure
A Channel 9 Going Deep interview in which Brian Beckman talks with Rich Hickey, creator of Clojure, about the language's design.

"A (Not So Gentle) Introduction To Systems Programming In ATS" by Aditya Siram
Aditya Siram introduces ATS, a statically typed ML-like language that compiles to C and offers type-safe pointer arithmetic and a full proof language.

The Why, What, and How of Pinning in Rust
Jon Gjengset's long live-coding stream explains Rust's Pin and Unpin types: why they exist, how they work, and how they connect to futures and async/await.

Armin Ronacher - A Python for Future Generations
Armin Ronacher's EuroPython 2017 keynote examining how the CPython interpreter's leaky abstractions affect language design and how Python could evolve, drawing on JavaScript and Rust experience.

Nordic.js 2014 • Douglas Crockford - The Better Parts
Douglas Crockford's Nordic.js 2014 talk on 'the better parts' of JavaScript and programming in general.

Birth of BASIC
A Dartmouth-produced documentary on how professors John Kemeny and Tom Kurtz, with a group of undergraduates, invented the BASIC language.

Stanford Seminar - Concatenative Programming: From Ivory to Metal
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.

Lambda World 2018 - What FP can learn from Smalltalk by Aditya Siram
Aditya Siram argues that functional programming has much to learn from Smalltalk's interactivity, using Pharo and Squeak to show live, visual, explorable programming environments.

Lenses, Folds, and Traversals
Edward Kmett's talk to the NY Haskell User Group on the lens library, building from fmap and function composition up to lenses, folds and traversals.