The Thirty Million Line Problem (2018) [video]
youtube.com
youtube.com
The reality is that a miniscule amount of those lines of code is involved in the activity. You can write an OS and stack that could achieve a very specific task (IncludeOS), but then it could only perform that one task. Now that there is 'no wasteful code', how would he record his weekly screencast, or edit it, or transcode it, or upload it, or view it? Everyone would only be able to view text files.
These systems are this complex because there is demand for them to be. This really seems like tilting at windmills.
Yes, he's got a point about over-relying on layers of abstraction, but that abstraction was written with untold millions of dev-hours across thousands of organizational structures and independent individuals. The only way to get pieces of such disparate pedigree to operate together is abstraction and APIs. You have to bottleneck and standardize complexity to logical boundaries or else everyone ends up rewriting their OS to ship with their game. A standardized ISA wouldn't fix this because you still need standardized OS ABIs, hardware wire protocols, network protocols, media write protocols.
His argument boils down to "get all engineers to agree upon an ISA, OS, SoC, hardware interface". As a start, he suggests "Simplify the NIC, SATA, USB and video interface". Yeah, ok, I'll believe that can happen when engineers agree upon bike shed colors reliably.
When you're basically the only person in the stack, it's easy to naively say "just standardize everything!" but as anyone who has been to any organizational meetings knows, getting humans to agree on ANYTHING is an involved process.
Handmade Hero may be what he's known for in the general population, but Casey Muratori has been in game development since games were written directly to ABIs. He worked on WinG, he worked at RAD Game Tools, he's probably got code in more computer games than you can even name.
In other words, he has a pretty damned good idea what he's saying.
The claim is that he is an expert on all matters related to programming; none of those credentials have anything to do with OS, ISA, or hardware development. Certainly a claim that he is more of an expert than anyone here, which is absurd because HN does not consist of a uniform sample of human beings. Much less uniform in the comments section. People who care to comment on posts like this are passionate about what they do; meaning that they are most-likely very good at it.
He might be able to design the best computer system for a narrow scope - which has already happened in some respects: we have Vulkan, which he very curiously avoids, instead opting for the heavily abstracted OpenGL.
His opinions are valuable and worth listening to. Others' opinions are not worthless merely because of his CV and social network status.
(The following is based on my experience learning from the Irrlicht engine. YMMV) You find a random N-year-old basic OpenGL tutorial and it doesn't run N/1.5 iterations of Moore's law faster now, it still runs inexplicably slowly (compared to what you know that hardware theoretically should be able to do with modern games). You have to figure out, oh it's not using GPU memory for the meshes, how do I tell the driver to do that? Fixed that, but wait I'm using immediate mode, retained mode would be faster. Wait is retained mode going away, what's replacing it? So I gotta learn shaders now too?
The problem is the APIs are terrible and the drivers are buggy. The levels of abstraction keep being chosen all wrong - too low-level for the library or drivers to give user code "speed ups for free" and too high-level for a power user of the API to be able to be able to tell directly what's happening and profile what's making things slow.
A better model would be to break the high-level and low-level into two layers, like the Clang / LLVM compiler. The high level API defined by an organization like an OpenGL working group and they could provide a reference implementation front-end (corresponding to Clang or another compiler front-end in this analogy). The hardware vendors would just provide the low-level implementation (corresponding to LLVM).
Seems to make sense to me, but i know nothing. If someone defined one, an emulator could be written. may even be able to prove some gain that would make it attractive for a manufacturer to impliment it.
The program was believed-in by the Soviet military, which spent so much on countermeasures it crashed the Soviet economy, bringing down Gorbachev and, ultimately, the USSR itself. Which seemed OK at the time (people talked about a "peace dividend" -- joke was on us!), but now we have Putin. And Trump.
But I got a free trip to Hungary, in 1987, to report on research in point semiconductor defects, paid for by a grant from the US Air Force out of their Star Wars budget.
http://web.archive.org/web/20090227050446/https://www.smdc.a...
The nickname does indeed refer to the movies, which were released a few years earlier.
The program spent a lot of money, made a lot of large visible moves, and in the end, did not produce one single thing, offensive or defensive. Tax dollars (not) at work.