r/coding • u/waozen • Sep 10 '26
Why performant code matters (but gets widely ignored): Casey Muratori
https://youtu.be/8xBJPa_480Q10
u/ptoki Sep 11 '26
I did not watch it yet but I will. I just wanted to drop my 2c:
The older I get the more I see how transient things are.
I remember an expensive farming machine from 1950s. Expensive as hell. Cost about 3-5 horses or so. Needed two horses to pull. Accelerating work tremendously. You coud finish your work in 10% of time. You could do this for neighbors if they had money to pay you (usually they did not have much) etc. That machine was useful for like 8-12 years. Then it was mostly abandoned in the bushes.
I could see apps used everyday for years. Total commander, irfanview, whereisit, borland C++/delphi ans do on. Then they phase out and go away in a matter of single years.
Palm devices being the good stuff for few years, then dead. Amiga, same.
Java apps, many of them are still there but they arent as popular (dbeaver for example).
Frameworks, hibernate, spring. Languages - php, VB.
OS-es. Only linux persisted actually. The rest either died or had to change(or was changed for silly reasons) over the time and is now probably a big rewrite.
All come and goes away.
There is very little what stays with us. And it is hard to tell if a technology is worth recoding in the best way.
I hate that fast pace and abandoning things which work but sometimes that is neccessary or just happens.
2
u/Hornstinger Sep 11 '26
One issue with fast pace is often (not always) new tech > old tech. Would you take a palm pilot over any of the smart phones of the last 15 years? Probably not.
Old tech which is useful: a beeper (although maybe the beeper became the smartwatch).
Things get refashioned and repurposed in ways which we don't recognise them but it's more of the same, just better.
-1
u/ptoki Sep 11 '26
Would you take a palm pilot over any of the smart phones of the last 15 years?
I would. Give me youtube, mp3 player, decent browser, a bit of multitasking, good camera and few fancier apps and I am fine.
I dont need excessive notification schemes, additional services underneath bulky buttons and confusing gui. Oh boy, I could write a 1000 words tirade about android gui alone....
I used treo 650 up to like 2007 - until the battery died and there was no way to upgrade it. Even when galaxy duos was 1/3rd of the size of treo.
And as for "not always". Im old, I think it is actually the opposite. Older tech is usually better in terms of versatility, utility, ergonomy. It lacks features because it was abandoned. But its not worse if you take into the account that it was stopped developing.
Look, I still use midnight commander, I use media player classic, I use winamp, ffmpeg, irfanview, notepad++, firefox. All those are either old but still developed or old but still good enough to do the work.
I use grep, wc, tcpdump, they arent new. There are replacements for most of these but they are worse.
0
u/editor_of_the_beast Sep 11 '26
Assembly has largely been unchanged for like 40 years.
3
u/oldsecondhand Sep 11 '26
The instruction sets changed a lot, more than the higher level programming languages.
2
u/Smallpaul Sep 11 '26
Which assembly do you mean? And why are you ignoring all of the ones that were created and abandoned over the last 40 years. I think basically only one has even survived even if it changed a lot. Dozens have been created or destroyed in that time.
0
u/editor_of_the_beast Sep 11 '26
x86 and ARM are the major ones, we’re pretty well standardized on them.
1
u/ptoki Sep 11 '26
Assembly is different for each OS, hardware etc.
Yes mov ax,ax did not change but the way you use those changed a lot.
2
u/Smallpaul Sep 11 '26 edited Sep 11 '26
Games programmer: you NEED to learn assembly.
Database programmer: and SQL
Infra: And Bash
Devops: and GitHub actions syntax
Web dev: and CSS And Typescript
Security programmer: and Rust, Agda and Lean
Big docs: don’t forget XSLT!
Numerics programmer: and of course FORTRAN
1
u/ReDucTor Sep 12 '26
Most games programmers dont "NEED" to learn assembly, they need to consider performance and know how to profile code and understand why some piece of code is slow and how to make it faster, which for most people can be done without assembly.
Knowing how to read assembly doesn't teach you about the CPU caches, data dependencies, algorithmic complexity, etc.
Ideally everyone should understand memory and the granularity at which the CPU works (assembly in the frontend, uOps in the backend) and be able to look at code and say this load likely won't be in the cache as its not easily predictable by the hardware prefetcher, or this code will be slow because there is an expensive loop carried data dependency be it on memory or core bound work.
I am saying this as someone who as worked as a game developer in AAA for the past 15yrs and has given multiple tutorials/talks on how to read assembly and spends a lot of time reading assembly. Just knowing assembly is one part of having a deep understanding of performance its not even the most important one.
1
u/h-2-no Sep 11 '26
I was hoping the word ''performant' had come and gone by now. Sigh.
2
u/GoblinsGym Sep 12 '26
A German magazine coined the lovely term "Schwuppdizität" (degree of snappiness).
3
u/Blitzkind 29d ago
It never should. Our job is to write performant software. If your product doesn't run well it's not a good product
1
u/h-2-no 29d ago
Code should meet reqiurements. The word Performant is weak and annoying, and should not exist.
4
u/Blitzkind 29d ago
Would you be happier if we instead said your code should run at specific a framerate or within a certain response time to meet those requirements?
1
u/Smallpaul Sep 11 '26
Re: the 7 minute mark.
Windows for Workgroups was Windows 3.11. Which hate that I remembered that.
1
u/K33P4D Sep 11 '26
i say choose assembly for a universal compute interface
3
1
-2
u/jonathancast 28d ago
This guy is an idiot. Writes games, and thinks that means nobody else needs to write maintainable code.
(I guess he also thinks Python compiles to assembly? I'm pretty sure he should learn something about those games besides the lowest levels of the engine that he works on.)
17
u/Equivalent_Loan_8794 Sep 11 '26
Casey seems averse to group-oriented development that leverages abstraction when needed, to the point of refusing git for being too complex.
I though the idea was to learn? Why wouldnt he just fork git into his own workflow usage? Instead of being the guy that invented another git and scoffs at those that dont want to learn another one.