5 Comments
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
Rich Wasserman's avatar

Thanks!

I sort of have a vague sense that some codebases are going to get a lot better and some a lot worse in the near future. ;-)

Expand full comment
Larry Jacobson's avatar

Rich that was an epic post. I didn't have time to read it, but I MADE time to read it. These past few months I have been blown away by claude code. Like you said it has enabled a return to coding and I'm like a kid having fun again. I used to take pride in knowing all the arcana of a particular framework or language, but I let that go and now it's just build build build. I've had lots of project ideas over the years and the question each time is can I spare the months' of nights and weekends for this. Now the question is, hey do I have a couple hours to see how far I can get? Plus, it's a swiss army knife - a single tool to partner with you on high level visioning, option evaluation, iterative spec writing, execution and testing. Cocoon is a great reference! Myself I was thinking of the book Old Man's War by Scalzi. Glad you're having so much fun as well!

Expand full comment
Rich Wasserman's avatar

Thanks Larry! I realized by the end it was … err … a bit long. Thanks for making the time! :-)

Expand full comment