Thanks!
It seems funny though: The advantages of GPGPU are so obvious and unambiguous compared to AI. But then again, with every new technology you probably also had management pushing to use technology_a for <enter something inappropriate for technology_a>.
Like in a few decades when the way we work with AI has matured and become completely normal it might be hard to imagine why people nowadays questioned its use. But they won't know about the million stupid uses of AI we're confronted with every day :)
I also find these things incredibly annoying. But I've been actively working in webdev the past couple of years so I was actually keeping up with stuff. And I still consider this a cheat-code.
It makes it so easy to cut through the bullshit. And I've never considered myself scared of asking "stupid" questions. But after using these AI tools I've noticed that there are actually quite a few cases where I wouldn't ask (another human) a question.
Two examples: - What the hell does React mean when they say "rendering"? Doesn't it just output HTML/a DOM tree and the browser does the actual rendering? Why do they call it rendering? - Why are the three vectors in transformer models named query, key & value? It doesn't really make sense, why do they call it that?
In both cases it turns out, the question wasn't really that stupid. But they're not the kind of question I'd have turned to Stackoverflow for.
It really is a bit like having a non-human quasi-expert on most topics at your fingertips.
> At this point I'm basically programming in English, no?
Yea, except they can handle some degree of complexity. Its usefulness obviously really depends on that degree. And I'm sure there are still a lot of domains and types of software where that tradeoff between doing it yourself or spelling it out isn't worth it.
Just a guess, but to me it sounds like you're trying to do too much at once. When trying something like this:
> lots of careful code of registering and unregistering callbacks, some careful thread synchronisation (callbacks get called in another thread), thinking about sane exception handling in async code. Fiddly but not rocket science.
I'd expect CC to fail this when just given requirements. The way I use it is to explicitly tell it things like: "Make sure to do Y when callback X gets fired" and not "you have to be careful about thread synchronisation". "Do X, so that Exceptions are always thrown when Y happens" instead of "Make sure to implement sane Exception handling". I think you have to get a feeling for how explicit you have to get because it definitely can figure out some complexity by itself.
But honestly it's also requires a different way of thinking and working. It reminds me of my dad reminiscing that the skill of dictating isn't used at all anymore nowadays. Since computers, typing, or more specifically correcting what has been typed has become cheap. And the skill of being able to formulate a sentence "on the first try" is less valuable. I see some (inverse) parallel to working with AI vs writing the code yourself. When coding yourself you don't have to explicitly formulate everything you are doing. Even if you are writing code with great documentation, there's no way that it could contain all of the tacit knowledge you as the author have. At least that's how I feel working with it. I just got really started with Claude Code 2 months ago and for a greenfield project I am amazed how much I could get done. For existing, sometimes messy side projects it works a lot worse. But that's also because it's more difficult to describe explicitly what you want.