Discussion about this post

User's avatar
Shawn A. Van Ness's avatar

I'm currently helping update and maintain an old game engine codebase, for a PC flight simulator .. it's typical game-industry code quality -- full of race conditions and heap corruption and memory leaks and bad casts and pointer-truncation bugs and .. just imagine every sloppy-code nightmare you've ever encountered, all get together for a party.

AI doesn't help much with the bigger-picture analysis, of the problems or how to solve them in the context of this-old-codebase.

But it's great at the little things.. I'm rusty on C++ (and turns out it has evolved a LOT in the past 25 years!) so the syntax can be so obscure at times.. eg. recently I needed a template function with variadic arguments. Instead of spending hours trying to piece it together myself, or search for an example, Claude can just show me the syntax -- that keeps me unblocked and mentally focused on the cognitive layers that matter -- not down in the weeds struggling with C++ template syntax.

It can also be a great help at getting (back) up to speed on the newer language idioms. Eg. I remember recently asking claude "in C++, what's the deal with std::move(). it doesn't actually move anything?"

I recognize it's just summarizing a dozen stackoverflow posts and discussions .. but that in and of itself is quite useful -- another hour saved!

Maybe I'll try giving it a longer leash, to help me refactor the old VR head-positioning code to use quaternions instead of euler-angles. That's definitely some code I don't want to write myself..

Expand full comment
Daniel Kirschner's avatar

Awesome post! The realization "aren’t these the {software practices} that we were always supposed to be doing?" drives home the metaphor that these AI coding tools are like interns from MIT. They have incredible depth, but sometimes aren't sure what to do with all of their skills. We need to provide them the same structure we'd give a real intern to make sure they're successful!

In practice this means that, like you mentioned, all of my side projects these days are much better written "software". All the documentation is up to date, the tests are exhaustive and run quickly, the build fails fast when something goes wrong... It's so much faster to do it right and give these guardrails to the tools than it is to manually detect regressions, even on code that I'm not investing much time into.

Expand full comment
3 more comments...

No posts

Ready for more?