HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

The Thirty Million Line Problem

Molly Rocket11 HN recommenders · recommended in 11 months, 2018-2024
YouTube
326K views · 8 years ago · talk · evergreen

Casey Muratori's long talk arguing that modern software has ballooned to tens of millions of lines because of hardware and OS diversity. He proposes a stable ISA for entire system-on-a-chip packages and recalls when games shipped with their own boot disk.

HN recommends it, long as it is, as an eye-opening rant on software complexity and why systems became so complicated.

Software performance & optimizationOperating systems & kernelsComputer architecture & CPUs#caseymuratori#operatingsystems#instructionsetarchitecture#softwarebloat#hardware

20 comments from Hacker News

@henning2024 · in “Show HN: One – A new React framework unifying web, native and local-first”

Yes, modern computer systems are unbelievably complicated from the application level down to the hardware. The consequences are absolutely devastating. ▶ this video

Strongly recommendsView on HN
@frfl2023 · in “Ask HN: Article on software only increasing complexity?”

It's not what OP is looking for, but there's a relevant video I know of by a well known game-dev, The Thirty Million Line Problem - ▶ this video

RecommendsView on HN
@datadeft2023 · in “Mirage – A programming framework for building type-safe, modular systems”

> I'm really sold on the idea: Instead of a full-blown OS, You mean you are sold on the idea of going back to the 80s. We used to have an operating system with every game released[1]. 1. ▶ this video

CitesView on HN
@fractallyte2023 · in “A love letter to Objective-C”

It's "abstractions" that led to this: ▶ this video [The Thirty Million Line Problem] And Apple is one of the companies directly responsible for the explosion in complexity - and insanity - in modern computing. It's all so deeply entrenched - the hardware, abstraction layers, languages, culture - that it's difficult to imagine ever being able to extricate ourselves from this mess. We need another 'quantum leap' in technology, or some new paradigm...

CitesView on HN
@drivers992023 · in “I wanted a beautiful computer and couldn't find one, so I made my own”

I would say just look around, but it's probably because of some of the information I've seen that opened my eyes to it, so I'll point you to these two talks: ▶ this video Preventing the Collapse of Civilization / Jonathan Blow link The Thirty Million Line Problem / Casey Muratori

RecommendsView on HN
@cellularmitosis2023 · in “Learning BASIC Like It's 1983 (2018)”

Casey Muratori proposes going back to the memory-mapped-io-as-universal-hardware-api in "The Thirty Million Line Problem" ▶ this video

CitesView on HN
@Yoofie2022 · in “Ask HN: What is your fav “I can't believe in 2022 this still doesn't work right””

Reminds me of these videos from Casey Muratori: 30 million line problem - ▶ this video Twitter and Visual Studio Rant - link

CitesView on HN
@posnet2022 · in “DevOps is a failure”

You are not alone in thinking that, see 'The Thirty Million Line' talk by Casey Muratori. (Long, but worth it, assuming you haven't seen it already) ▶ this video

RecommendsView on HN
@JamesSwift2021 · in “Tetris-OS: An operating system that only plays Tetris”

That might be what OS'es currently _are_, but I disagree that it is what an OS _is_. I think fundamentally an OS is as the OP uses it, a set of code that interfaces with all your hardware to make the computer function. Heres a good talk I came across in a HN comment a little while back [1] about how games used to be developed vs how they are today. [1] - ▶ this video

RecommendsView on HN
@modernerd2021 · in “Tetris-OS: An operating system that only plays Tetris”

“In the 1980s with things like the Amiga computer, for example, every game was a boot disk. It booted into its own customized version of an operating system that ran what it needed to run to make its game work well and be performant and reliable. … We know that in the past, hardware that was very capable and very interesting made it so easy to create an operating system that literally everybody did it. Not a few people. Not even most people. But literally everybody.” – Casey Muratori in “The Thirty Million Line Problem” ▶ this video

CitesView on HN
@chenglou2021 · in “Code Budgets”

I happened to have read many of VPRI’s papers and some domain expertise in a few of their topics, or know close friends with such domain expertise. Btw, my collection of their links are at link The goal is a noble one; though it's unclear to me if their research is the right way to go. Alan Kay's gang's research's end result are often great, but their implementations are usually more geared toward prototyping rather than production. For example, the GUI innovation is great, whereas its implementation using Smalltalk is clearly geared toward faster iteration and not meant to be as competitive as a production language (let's not enter into this debate as this is another rabbit hole. Plenty of other HN threads on this). But I think so far these implementations have gotten a pass because the end result is futuristic enough for someone else to come along and implement e.g. the GUI in more production-oriented languages. In the context of VPRI, however, the goal wasn't to create more futuristic end results, but to recreate existing result using hopefully drastically more concise paradigms and DSLs. In this case, the implementation itself is the thing we should examine, and imo they kinda fall short. For example: - Yes, it's very appealing that Nile can reduce the antialiasing logic by so much. Is it resilient to real world requirement changes though? Unclear (and the Nile paper still isn't out as the author seems busy with some startup). - The OMeta parser tool is cool until you e

CitesView on HN
@stephc_int132020 · in “Ask HN: Is there still a place for native desktop apps?”

A quite well-known rant from Casey Muratori about a very similar issue: ▶ this video (For those who never saw it)

RecommendsView on HN
@scruple2020 · in “Anti-patterns and malpractices in modern software development (2015)”

There is a related Jonathan Blow talk titled "Preventing the Collapse of Civilization" [0] that I came across recently from a HN post. You might be interested in watching it. Also, Casey Muratori's talk titled "The Thirty Million Line Problem" [1]. [0]: link [1]: ▶ this video

RecommendsView on HN
@dsego2019 · in “Software Is Hard (2007)”

Have you seen the 30 million line problem* by Casey Muratori (of Handmade Hero fame)? There is an argument that a lot of today's complexity in software is an (unnecessary) byproduct of changes in hardware design. * ▶ this video

RecommendsView on HN
@worldsayshi2019 · in “Docker is vulnerable to a symlink-race attack”

If you'd like to venture further into this rabbit hole I can recommend "Preventing the Collapse of Civilization": link And "The Thirty Million Line Problem": ▶ this video

RecommendsView on HN
@frou_dh2018 · in “One Windows Kernel”

> I think it was Casey Muratori who made the argument that we could return to having nice ABIs that are canonical APIs Here's the video I think you're referencing: ▶ this video IIRC he mentions that he actually presented the same content in person to staff at Intel, and discusses how it's very hard to get any buy-in even if the engineers consider the approach to make sense.

CitesView on HN
@meuk2018 · in “Systems Software Research is Irrelevant (2000) [pdf]”

I think the problem is that current OSes are too complicated. What does a common user really want? I'd say text editing, making presentations, multimedia, and browsing. While these sound like simple things, text editing usually happens in a Word-like format, which - from what I've heard - is ridiculously complex. The same thing holds for browsing (simple browsers don't exist anymore, and many use the same back-end for rendering). For multimedia, USB is very important, which is a very complicated format to use correctly. Then, there are tens of codecs and formats for multimedia, each with their own idiosyncrasies and ambiguities in the specs (or deviations from the spec that are so common that they are expected nowadays). The case is even worse when your OS is supposed to run on different hardware. I think this is the main reason that Apple, in general, has a much better UX: They only have to support a limited set of hardware. Casey Murati has a great rant about this: ▶ this video

RecommendsView on HN
@AnIdiotOnTheNet2018 · in “Walk Monster (2012)”

I feel like you intended to link this [0]? [0] The 30 Million Line Problem: ▶ this video The article is about Casey's work verifying collision geometry and movement code in Jonathan Blow's The Witness, to ensure that the player can't get stuck anywhere or fall through the ground or anything like that.

CitesView on HN
@loup-vaillant2018 · in “Zapcc – A caching C++ compiler based on clang”

So now not only projects have to be maintained, we also have to maintain changes ? I'm seriously getting sick at the notion that nothing can ever be finished. Bugs? That will be those introduced by the change, nothing more. If there is any bug left, that's only because nobody discovered them yet. Having a maintainer won't change that, only usage reveals bugs. (Unless of course the "maintainer" is instead tasked with finding bugs in the first place). Bit rot? That's only an issue when the environment around the code changes. Clang is a compiler , there's not much it cares about its environment. And if you're talking about changes within Clang that could have an effect, and those are well within the maintainer's control. We shouldn't need a maintainer for every patch. This change in particular doesn't seem to introduce any new feature. I'm guessing it only allows Clang to run faster. The new code path replaces the old, so it shouldn't require much more maintenance. --- More generally, we should do away with the notion that everything should be maintained, forever. We should be able to code correct programs. We should have environments stable enough to preserve that correctness. And we should stop believing we need so much code in the first place. Let's not kid ourselves, programs "require maintenance" (euphemism for "aren't finished"), mainly because they're so damn big. We can do better, really. link link ▶ this video

CitesView on HN
@ropeadopepope2018 · in “Docker is a dangerous gamble”

This may be a little off topic, but has anybody watched Casey Muratori's proposal on SoC ISAs[0]? The video is long, but it's worth watching all of it. It sounds to me like a SoC ISA could make docker obsolete. If it ever happens, anyway. [0]: ▶ this video

Strongly recommendsView on HN
Simple Code, High Performance2:50:14

Simple Code, High Performance

Molly Rocket
463K views • 5 years ago
Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 20252:27:34

Casey Muratori – The Big OOPs: Anatomy of a Thirty-five-year Mistake – BSC 2025

Better Software Conference
926K views • 1 year ago
"Clean" Code, Horrible Performance22:41

"Clean" Code, Horrible Performance

Molly Rocket
1.2M views • 3 years ago
Twitter and Visual Studio Rant38:20

Twitter and Visual Studio Rant

Molly Rocket
158K views • 6 years ago
Refterm Lecture Part 1 - Philosophies of Optimization18:41

Refterm Lecture Part 1 - Philosophies of Optimization

Molly Rocket
93K views • 5 years ago
Bloat: How and Why UNIX Grew Up (and Out) - Rusty Russell,Matt Evans42:39

Bloat: How and Why UNIX Grew Up (and Out) - Rusty Russell,Matt Evans

Linux.conf.au 2012 -- Ballarat, Australia
21K views • 14 years ago
How to Speed up a Python Program 114,000 times.59:11

How to Speed up a Python Program 114,000 times.

InfoQ
171K views • 13 years ago
A Crash Course in Modern Hardware by Cliff Click59:21

A Crash Course in Modern Hardware by Cliff Click

Devoxx
21K views • 9 years ago
"Performance Matters" by Emery Berger42:15

"Performance Matters" by Emery Berger

Strange Loop Conference
502K views • 7 years ago
Casey Muratori | Smart-Pointers, RAII, ZII? Becoming an N+2 programmer30:12

Casey Muratori | Smart-Pointers, RAII, ZII? Becoming an N+2 programmer

xDahl
162K views • 2 years ago
"Performance (Really) Matters" with Emery Berger1:04:48

"Performance (Really) Matters" with Emery Berger

Association for Computing Machinery (ACM)
7K views • 6 years ago
New computers don't speed up old code19:25

New computers don't speed up old code

Matthias random stuff
187K views • 1 year ago
Someone improved my code by 40,832,277,770%28:47

Someone improved my code by 40,832,277,770%

Stand-up Maths
3.1M views • 4 years ago
Scale By The Bay 2019: Bryan Cantrill, Was He Wright All Along? Software After Moore's Law32:35

Scale By The Bay 2019: Bryan Cantrill, Was He Wright All Along? Software After Moore's Law

FunctionalTV
11K views • 6 years ago
"The Mess We're In" by Joe Armstrong45:50

"The Mess We're In" by Joe Armstrong

Strange Loop Conference
398K views • 12 years ago
Plenary: Performance Matters - Emery Berger - CppCon 20201:01:09

Plenary: Performance Matters - Emery Berger - CppCon 2020

CppCon
32K views • 6 years ago
code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care1:16:58

code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care

NOKIA Technology Center Wrocław
231K views • 11 years ago
Shouting in the Datacenter2:00

Shouting in the Datacenter

Bryan Cantrill
5.7M views • 17 years ago
Unix and Google7:16

Unix and Google

FOAM
9K views • 10 years ago
"Compacting the Uncompactable" by Bobby Powers40:18

"Compacting the Uncompactable" by Bobby Powers

Strange Loop Conference
29K views • 7 years ago