Contributors to this thread:

My hypothesis—and i'm open to counter-arguments—is that the people who are most optimistic about the state of AI tools that write code, don't write code day to day. And that they see the cryptic output that these tools generate, and they think it looks a lot like the cryptic code software developers write. QED.

What I personally really want is a tool that can look at some code and explain to me what it does. That would be useful!

@toddsundsted After some discussions I actually see two camps. The one you mentioned but also the ones who want AI to act as some sort of filter, or giving you more creative suggestions - maybe even related to explaining (which would be really good) but even less sophisticated, just some "hey, have you thought about ..." or advanced rubberducking.

@wink "super intelligent code complete" would be very useful, or even "intelligent automated refactoring".

@toddsundsted I feel like most discussions of "AI" use in code development approach it exactly backwards. Rather than machine generated code that the developer then has to debug and test, we should be emphasizing the use of ML to flag potential issues in human written code, and generative algorithms could be useful for things like building out test coverage.

@rafial that is my intuition as well. it seems like (and this is pretty loose reasoning) getting tricky syntax and types right is going to be hard to do well, and unless it's done well and consistently it's not very useful. whereas, i'm kind of okay with a summary of the code that isn't perfect or a few false positives flagging risky code.

@toddsundsted I think formal stuff like syntax and typing is actually a place where algorithms can totally assist -- although that's a job for ML or even a good old fashioned expert system.

What almost none of the current techniques lumped under the banner of AI bring to the table is true planning or intentionality. For best results, you need a human to unambiguously set out a plan for the machine to follow.

Oddly enough, that's called programming :)

@rafial for business logic in particular (vs. common algorithms) which is often highly specific and not well documented in existing code samples (i'd guess).

@toddsundsted many tools are capable of explaining code.
Even the popular ones like GitHub Copilot.

They can even migrate it to other languages or refactor, "debug" it.

@alexanderadam okay, i maybe need to check in on the state of the art.

@toddsundsted this was the state of the art last year 😄

But I have to admit that there's so much going on that it is difficult to keep track.

@toddsundsted I agree. It's either that or people who do code, but not in the language that they asked it for. Code written by GPT in Go, for example, is over-simplified and even invents libraries that don't exist and never did.

@relistan i hadn't considered the use case of writing in languages i'm not proficient in (or the related use case of translating code) when i posted. the model i'm building and testing in my mind is, "would i trust these tools as an apprentice coder for task xyz" and "would i assign task xyz to a human apprentice in the first place"

@toddsundsted that’s probably a good starting set of criteria 👍


»What I personally really want is a tool that can look at some code and explain to me what it does. That would be useful!«

Just ask AI to write the code of a tool like that 😉

(Not sorry for my kind of humor.)

@kaputt no that's perfect. when i put on my most cynical hat i ask myself why the code generation tools cannot generate themselves yet!