I listened to the first two hours on a train yesterday. I'll likely finish it later.
The discussion about tools and languages was particularly interesting. You might expect John Carmack to be pretty old school and dogmatic on using e.g. C and instead it seems he has a very broad taste and experience with different languages and tools. Just a very pragmatic person that switches between doing C, python, Go and other languages. For someone that is into hyper efficient graphics code, admitting that for the vast majority of code, using a garbage collector is perfectly fine is IMHO a very pragmatic and mature attitude. He doesn't have to prove anything to anyone anymore on that front of course.
VS Code is indeed a very popular IDE. The Jetbrains ecosystem is also pretty interesting. I found his comments on debuggers to be pretty striking. GDB is so hard to use that programmers avoid using it. Having a proper debugging UI changes that. He was talking about how he just runs most things in the debugger by default to see if things work as he expects.
In the same way having static code analyzers tell you that, no, actually your code wasn't perfect and is full of little time-bombs that could go off at any moment is a great argument against just pretending you are Buddhist monk that only requires a pen and paper to produce perfect code. Exaggerating here of course but I know some people and that on purpose avoid using, or even learning about tools that would allow them to be more productive and better engineers.
There really is a learning curve to using these tools, and the investment might not be worth it. I use GDB so unfrequently that I have to re-learn it every time I want to do something. Coupled with the fact that it's not integrated with the language (I can't run `cargo debug` or `cargo gdb` or something) and not the default on Mac (why should I relearn lldb), I end up just printing stuff instead of using it.
I don't know; I'm only a few years younger than John Carmack. IDEs with decent debuggers were a thing from the mid nineteen eighties already. They were widely used and you can learn to work with them in a few afternoons. And decent IDEs are available for many languages. Including Rust, C, and C++, etc. Also on macs.
Not using tools that are there is a choice that a lot of people seem to insist they need to make. I've heard all the excuses on this front and it usually boils down to people believing in their super skills, discipline, and intelligence to the extent that they believe they don't need those tools. Some people actually feel threatened by a tool telling them they are doing stuff wrong. They get annoyed and frustrated by that. It's irrational.
> You might expect John Carmack to be pretty old school and dogmatic on using e.g. C and instead it seems he has a very broad taste and experience with different languages and tools.
He has been using various programming languages for a long time. Basic, assembly, (turbo) pascal, etc. In my experience most old school dogmatic C programmers started with C and never even tried to use any other programming language halfway seriously.
He especially gives a lot of praise to Borland for making turbo pascal and how far ahead it was of its competition back in the day when it comes to developer tooling (IDE, debugger, etc)
About GDB:
I really like using KDevelop on linux, and they have a pretty good GDB front-end built in. It's pretty similar to VS debugger, with a panel showing local variables and their values, etc. It's definitely not as full featured as VS, and IIRC there was some instability, but if you're on linux and using C or C++ I highly recommend trying it.
He's previously done one of the fairest analyses of the state of functional programming (specifically Haskell) and its pros/cons particularly with respect to building games I've seen as well. It's very refreshing.
The discussion about tools and languages was particularly interesting. You might expect John Carmack to be pretty old school and dogmatic on using e.g. C and instead it seems he has a very broad taste and experience with different languages and tools. Just a very pragmatic person that switches between doing C, python, Go and other languages. For someone that is into hyper efficient graphics code, admitting that for the vast majority of code, using a garbage collector is perfectly fine is IMHO a very pragmatic and mature attitude. He doesn't have to prove anything to anyone anymore on that front of course.
VS Code is indeed a very popular IDE. The Jetbrains ecosystem is also pretty interesting. I found his comments on debuggers to be pretty striking. GDB is so hard to use that programmers avoid using it. Having a proper debugging UI changes that. He was talking about how he just runs most things in the debugger by default to see if things work as he expects.
In the same way having static code analyzers tell you that, no, actually your code wasn't perfect and is full of little time-bombs that could go off at any moment is a great argument against just pretending you are Buddhist monk that only requires a pen and paper to produce perfect code. Exaggerating here of course but I know some people and that on purpose avoid using, or even learning about tools that would allow them to be more productive and better engineers.