Loved the employment bit. Andrew has such a refined understanding of the downfalls of the system everyone seems to be championing, where essentially workers in software are making themselves replaceable as the "meta" while not realizing how bad it makes things at every avenue. "Switch jobs often to get paid more" at some point just devolves into "nobody cares about work anymore and if you do, you are unemployable." Too bad the topic wasn't as deep it could've been -- I bet Andrew could have a really deep conversation if it was well prepared on both sides. I am so inspired by their nonprofit that I really want to spin up something with a similar business-structure. I want a skill-based shop that respects its employees and has great output as a result. The world needs that so much right now!
The reason that signed overflow is undefined in C is because some very old CPU architectures did not use 2's complement, so the result would be different depending on the target machine. Of course it makes no sense today because all modern CPU architectures use 2's complement.
Another example of speed being much more important than safety would be embedded that has a defined maximum runtime. Intercontinental ballistic missile (ICBM) where every clock cycle is needed, they just leak memory because the most powerful garbage collection will happen automatically at impact.
Hard disagree here. In an ICBM and most other embedded applications, consistency is the most important factor above all else. That's why garbage collection is an absolute no-go, because it has non-deterministic runtime characteristics. If the guidance computer needs to produce a course correction every millisecond (for example), then it needs to hit that target without fault or deviation. Evidence of this is redundancy. Even in the confined environment of an ICBM, there are redundant compute systems. If performance above all else was the goal, then the redundant compute platform would instead be used to tackle the task in parallel. This is why embedded is largely the domain of C and ASM, its runtime characteristics are very well established and controllable. Go, Python, C#, etc. will never be successful in embedded simply because it is not known how it will perform. Zig fits in the same category as C (arguably better since allocation control is easier) in this context. Rust is different in that its abstractions add a lot of separation between what an author writes and what actually gets run on the hardware. Runtime performance is exactly as repeatable as C, Zig, and ASM though.
@@zactron1997 When you have an extremely restricted environment where ever single CPU cycle counts and you at the same time have an almost 100% predictable execution plan, memory deallocation becomes secondary. Deallocating memory uses CPU cycles, CPU cycles are expensive (in every way) and memory is cheap (in every way). Therefor you can build the system, let it leak memory, measure how much memory it will ever maximally need including the leak, and then have your hardware manufacture double that memory so that it will never run out. I came across this implementation many years ago in a talk from a NASA engineer who had previously worked in weapons manufacturing. I can't find that talk right now, but I randomly came across a mention of a few days ago in this video: ua-cam.com/video/TZ5a3gCCZYo/v-deo.htmlsi=oMUclYZfRE0x9uE7&t=740 I have no idea if they still do it today, but it absolutely makes sense in certain scenarios and it is worth keeping in mind as a possible solution.
@@phrsngx5675 No not at all, and with the amount of memory we have available in modern PCs we could leak quite a lot before it becomes an actual problem. Probably shouldn't though 🙂
32:06 people are not motivated by money. People are forced into wanting money. You should’ve just dropped the point because it is clear Andrew has a view that aligns with human dignity, and yours aligns with capitalism.
it seems this podcast is from June 2022? Andrew Kelley just gave a talk on the plans for the future of Zig if anyone’s interested ua-cam.com/video/5eL_LcxwwHg/v-deo.htmlsi=4N181AAsVh-FlHM6
I had no idea that this was all so recent. Zig is similar to what I'd been thinking about for several years, removing the last few artificial obstacles to optimization.
I love the guests that come on this show! They are always great. But the host seems to be constantly combative, condescending, or completely uninterested in the guest. So i stop listening until I see another must-hear guest and I have to cringe through it as the guests graciously handle the host's inexperience. I just want the host to be genuinely interested in and excited for the guests and not feel intimitated or need to one-up them at every turn.
28:23 it's not a binary "will people leave or will no one leave". it's an attrition rate. some people will leave no matter what you do. and of course you have to build in some redundancy to cover that. but Andrew was specifically saying that Amazon isn't just a normal corporation. they optimize for a higher than normal attrition rate.
Guess I am just commenting on the idea of switching jobs every couple of years is just so foreign to me. Of course people will switch jobs and you can't get stuck with people being non-replacable, but I kind of like being able to be allowed to do lots of things and be trusted to not run away/switch jobs for slightest reason
This was too hard to listen to completion. Andrew Kelley is an incredible guest, but the host spent far too much time derailing the conversation with silly anecdotes and pointless questions, and misunderstanding basic topics like undefined behaviour
Yeah, I felt like host was kinda outclassed by the guest which led to hard time holding any meaningful conversation Edit; At around 30 minutes mark when the host is yapping about completely different topic that Andrew is giving him the benefit of the doubt by again reiterating what he told before is just painful
Loved the employment bit. Andrew has such a refined understanding of the downfalls of the system everyone seems to be championing, where essentially workers in software are making themselves replaceable as the "meta" while not realizing how bad it makes things at every avenue. "Switch jobs often to get paid more" at some point just devolves into "nobody cares about work anymore and if you do, you are unemployable."
Too bad the topic wasn't as deep it could've been -- I bet Andrew could have a really deep conversation if it was well prepared on both sides. I am so inspired by their nonprofit that I really want to spin up something with a similar business-structure. I want a skill-based shop that respects its employees and has great output as a result. The world needs that so much right now!
The reason that signed overflow is undefined in C is because some very old CPU architectures did not use 2's complement, so the result would be different depending on the target machine. Of course it makes no sense today because all modern CPU architectures use 2's complement.
19:11 Thank you, that 100 + column struct declaration was driving me nuts!
Another example of speed being much more important than safety would be embedded that has a defined maximum runtime. Intercontinental ballistic missile (ICBM) where every clock cycle is needed, they just leak memory because the most powerful garbage collection will happen automatically at impact.
Leaking memory is not necessarily unsafe. Garbage collection is related to memory safety in the sense that you can't dereference dangling pointers.
Hard disagree here. In an ICBM and most other embedded applications, consistency is the most important factor above all else. That's why garbage collection is an absolute no-go, because it has non-deterministic runtime characteristics. If the guidance computer needs to produce a course correction every millisecond (for example), then it needs to hit that target without fault or deviation. Evidence of this is redundancy. Even in the confined environment of an ICBM, there are redundant compute systems. If performance above all else was the goal, then the redundant compute platform would instead be used to tackle the task in parallel.
This is why embedded is largely the domain of C and ASM, its runtime characteristics are very well established and controllable. Go, Python, C#, etc. will never be successful in embedded simply because it is not known how it will perform. Zig fits in the same category as C (arguably better since allocation control is easier) in this context. Rust is different in that its abstractions add a lot of separation between what an author writes and what actually gets run on the hardware. Runtime performance is exactly as repeatable as C, Zig, and ASM though.
@@zactron1997 When you have an extremely restricted environment where ever single CPU cycle counts and you at the same time have an almost 100% predictable execution plan, memory deallocation becomes secondary. Deallocating memory uses CPU cycles, CPU cycles are expensive (in every way) and memory is cheap (in every way). Therefor you can build the system, let it leak memory, measure how much memory it will ever maximally need including the leak, and then have your hardware manufacture double that memory so that it will never run out.
I came across this implementation many years ago in a talk from a NASA engineer who had previously worked in weapons manufacturing. I can't find that talk right now, but I randomly came across a mention of a few days ago in this video:
ua-cam.com/video/TZ5a3gCCZYo/v-deo.htmlsi=oMUclYZfRE0x9uE7&t=740
I have no idea if they still do it today, but it absolutely makes sense in certain scenarios and it is worth keeping in mind as a possible solution.
@@phrsngx5675 No not at all, and with the amount of memory we have available in modern PCs we could leak quite a lot before it becomes an actual problem. Probably shouldn't though 🙂
lol
Nice interview ❤
32:06 people are not motivated by money. People are forced into wanting money. You should’ve just dropped the point because it is clear Andrew has a view that aligns with human dignity, and yours aligns with capitalism.
it seems this podcast is from June 2022? Andrew Kelley just gave a talk on the plans for the future of Zig if anyone’s interested ua-cam.com/video/5eL_LcxwwHg/v-deo.htmlsi=4N181AAsVh-FlHM6
I had no idea that this was all so recent. Zig is similar to what I'd been thinking about for several years, removing the last few artificial obstacles to optimization.
Totally bizarre interview. Dude doing straight digressions on his high school courses wth
nah man that was Ginger Bill announcing a new beer.
This feels more like an argument at times, 36:00 following for example.
It’s a weird interview. Andrew is trying to best to be a polite guest but I do believe one can hear the “WTAF” rummaging in the back of his head.
Andrew is a proper thinker!
I love the guests that come on this show! They are always great. But the host seems to be constantly combative, condescending, or completely uninterested in the guest. So i stop listening until I see another must-hear guest and I have to cringe through it as the guests graciously handle the host's inexperience. I just want the host to be genuinely interested in and excited for the guests and not feel intimitated or need to one-up them at every turn.
That’s the toxicity that people talk about when they complain about the rust-religion believers.
Shame we didn’t get to hear more about Zig and more from Andrew. Quite a lot of history and anecdotes that didn’t seem that relevant to Zig.
28:23 it's not a binary "will people leave or will no one leave". it's an attrition rate.
some people will leave no matter what you do. and of course you have to build in some redundancy to cover that.
but Andrew was specifically saying that Amazon isn't just a normal corporation. they optimize for a higher than normal attrition rate.
"For a 12 year old it was awesome" LOL. My language history was: BASIC, Ansi C, C++, PASCAL, LISP, C++, VB, C#, Python, Java, Scala, Ruby, GoLang
hamstrung has been hamstringed
Guess I am just commenting on the idea of switching jobs every couple of years is just so foreign to me. Of course people will switch jobs and you can't get stuck with people being non-replacable, but I kind of like being able to be allowed to do lots of things and be trusted to not run away/switch jobs for slightest reason
Cool talk!
A bit of audio imbalance here..Andrew's audio volume is overbearing while it's a bit difficult to hear the host's audio.
Liked and subbed!
This was too hard to listen to completion. Andrew Kelley is an incredible guest, but the host spent far too much time derailing the conversation with silly anecdotes and pointless questions, and misunderstanding basic topics like undefined behaviour
Yeah, I felt like host was kinda outclassed by the guest which led to hard time holding any meaningful conversation
Edit; At around 30 minutes mark when the host is yapping about completely different topic that Andrew is giving him the benefit of the doubt by again reiterating what he told before is just painful
Thanks for the interview
36:05 the fuck?
The host is annoying. Can someone edit out his parts and just stich together andrews answers in a video?