HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

TypeScript types can run DOOM

Michigan TypeScript1 HN recommender · recommended in 1 month, 2025-2025
YouTube
485K views · 1 year ago · demo · evergreen

The Michigan TypeScript group shows the Doom engine running entirely inside the TypeScript type system. It is open source, and two follow-up videos cover why and how they did it.

HN commenters link it as a delightful example of how far TypeScript types can be pushed, since they are Turing complete.

Programming language designWeb development#typescript#doom#type-levelprogramming#turingcomplete#wasm

3 comments from Hacker News

@ninetyninenine2025 · in “Python developers are embracing type hints”

Typescript types (and Idris) are Turing complete. You can actually get typescript types to run doom. ▶ this video Idris on the other hand is SPECIFICALLY designed so types and the program live in the same language. See the documentation intro: link THe powerful thing about these languages is that they can prove your program correct. For testing you can never verify your program to be correct. Testing is a statistical sampling technique. To verify a program as correct via tests you have to test every possible input and output combination of your program, which is impractical. So instead people write tests for a subset of the possibilities which ONLY verifies the program as correct for that subset. Think about it. If you have a function: def add(x: int, y: int) -> int How would you verify this program is 100% correct? You have to test every possible combination of x, y and add(x, y). But instead you test like 3 or 4 possibilities in your unit tests and this helps with the overall safety of the program because of statistical sampling. If a small sample of the logic is correct, it says something about the entire population of the logic.. Types on the other hand prove your program correct. def add(x: int, y: int) -> int: return x + y If the above is type checked, your program is proven correct for ALL possible types. If those types are made more advanced via being programmable, then it becomes possible for type checking to prove your ENTIRE program correct. Imagine: def add<A: addabl

CitesView on HN
@drej2025 · in “A parser for TypeScript types, written in TypeScript types”

For those not familiar with this kind of computing challenges, I must link this wonderful video about TypeScript types running... DOOM. ▶ this video

RecommendsView on HN
@stuaxo2025 · in “A 10x Faster TypeScript”

I'd like to see if it makes a difference to the version of DOOM that runs in the TypeScript type system. link ▶ this video

CitesView on HN
A 10x faster TypeScript13:45

A 10x faster TypeScript

Microsoft Developer
608K views • 1 year ago
TypeScript is being ported to Go | interview with Anders Hejlsberg1:01:31

TypeScript is being ported to Go | interview with Anders Hejlsberg

Michigan TypeScript
102K views • 1 year ago
Anders Hejlsberg and Lars Bak: TypeScript, JavaScript, and Dart43:14

Anders Hejlsberg and Lars Bak: TypeScript, JavaScript, and Dart

DartlangTV
14K views • 13 years ago
Demo: Base language, compile-time execution2:07:18

Demo: Base language, compile-time execution

Jonathan Blow
164K views • 12 years ago
Jonathan Blow on scripting languages9:30

Jonathan Blow on scripting languages

Jeru Sanders
185K views • 7 years ago
Servo Architecture: Safety and Performance45:05

Servo Architecture: Safety and Performance

linux conf au 2017 - Hobart, Australia
12K views • 9 years ago
Going Native 2012 Keynote Stroustrup1:29:49

Going Native 2012 Keynote Stroustrup

savage309
33K views • 14 years ago
Rust's Journey to Async/Await48:46

Rust's Journey to Async/Await

InfoQ
90K views • 6 years ago
Google I/O 2012 - Meet the Go Team1:00:29

Google I/O 2012 - Meet the Go Team

Google for Developers
108K views • 14 years ago
The Joy of Programming in Jai - Part 1: Hello World13:48

The Joy of Programming in Jai - Part 1: Hello World

Nuno Afonso
36K views • 6 years ago
Ideas about a new programming language for games.1:55:24

Ideas about a new programming language for games.

Jonathan Blow
530K views • 12 years ago
Interfacing D To Legacy C++ Code1:21:23

Interfacing D To Legacy C++ Code

NWCPP - Northwest C++ Users Group
5K views • 11 years ago
Rust: A Language for the Next 40 Years - Carol Nichols55:08

Rust: A Language for the Next 40 Years - Carol Nichols

ChariotSolutions
367K views • 7 years ago
Creating a Doom-style 3D engine in C18:50

Creating a Doom-style 3D engine in C

Bisqwit
991K views • 11 years ago
Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated1:13:00

Jonathan Blow - Jai Demo and Design Explanation (KEYNOTE) - Updated

LambdaConf
241K views • 1 year ago
JavaScript: The Good Parts1:03:48

JavaScript: The Good Parts

Google TechTalks
589K views • 17 years ago
TI DOOM2:48

TI DOOM

TPMFofMFF
199K views • 18 years ago
Reboot Develop 2017 - Jonathan Blow, Thekla Inc. / Making Game Programming Less Terrible1:02:49

Reboot Develop 2017 - Jonathan Blow, Thekla Inc. / Making Game Programming Less Terrible

Reboot Develop
112K views • 9 years ago
Sydney Golang Meetup - Rob Pike - Go 2 Draft Specifications1:07:00

Sydney Golang Meetup - Rob Pike - Go 2 Draft Specifications

Macquarie Group
57K views • 7 years ago
Does APL Need a Type System? by Aaron W Hsu at #FnConf1854:31

Does APL Need a Type System? by Aaron W Hsu at #FnConf18

ConfEngine
6K views • 7 years ago