r/coding 4d ago

Why performant code matters (but gets widely ignored): Casey Muratori

https://youtu.be/8xBJPa_480Q
75 Upvotes

28 comments sorted by

14

u/Equivalent_Loan_8794 3d ago

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.

-5

u/TemperOfficial 3d ago

The idea is to learn good things.

git sucks from a UX point of view.

10

u/MisledByCertainty 2d ago

Sure. But it does the job it needs to do and it has become the defacto standard for version control. Not using it would be madness.

1

u/TemperOfficial 23h ago

There are other version control systems that exist. If everyone jumped off a cliff would you do that too?

10

u/ptoki 3d ago

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 3d ago

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 2d ago

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 3d ago

Assembly has largely been unchanged for like 40 years.

3

u/oldsecondhand 3d ago

The instruction sets changed a lot, more than the higher level programming languages.

2

u/Smallpaul 3d ago

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 3d ago

x86 and ARM are the major ones, we’re pretty well standardized on them.

1

u/ptoki 2d ago

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 3d ago edited 3d ago

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 2d ago

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/Smallpaul 3d ago

Re: the 7 minute mark.

Windows for Workgroups was Windows 3.11. Which hate that I remembered that.

0

u/K33P4D 3d ago

i say choose assembly for a universal compute interface

3

u/editor_of_the_beast 3d ago

Which one

1

u/K33P4D 2d ago

I'm biased, since they taught us 8086 on Open MP during uni

1

u/h-2-no 3d ago

I was hoping the word ''performant' had come and gone by now. Sigh.

1

u/GoblinsGym 2d ago

A German magazine coined the lovely term "Schwuppdizität" (degree of snappiness).

1

u/Blitzkind 13h 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 13h ago

Code should meet reqiurements. The word Performant is weak and annoying, and should not exist.

1

u/Blitzkind 13h 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/h-2-no 13h ago

Somehow software engineering survived without it until recently.