Where do you see “philosophical answer”? AI, today, semi-randomly “looks” on parts of its knowledge bases and on parts of that input that you gave it. And then it does 50, 500, 5000 steps that all have very high probability of success. 99% rate or so. Similar to what branch predictors have, these days.
Except… 5000 steps with 99% probability of success gives you correct answer with probability 10⁻²² – if one mistake breaks the whole “thread of logic”.
That probability, practically speaking, is indistinguishable from zero, And that's “lots of step with high probability of success” is where all the issues with AI come from.
Thankfully out codebases are not made in a way where one mistake in reasoning may break everything, thus usually you get something useful even if AI does mistakes in these 5000 steps… but you get the idea, right?
And AI is really impressive at picking relevant parts of knowledge from their “head”, pre-trained set. They may also pick “important” parts from your large codebase. Really impressive stuff.
But it's all “vibes”, from the top to bottom and from the bottom to top. Remember how neural networks achieved very high performance on distinguishing military cars from civil ones by looking on whether car is in the middle of mudball, while civil cars are neatly moving on the roads?
That's how AI looks on your codebases. Parts that are covered by lots of tests are probably important ones, parts with comments are, most likely, a tricky ones and so on. Names of variables and functions are #1 source of truth, comments are great, looking on the code is not important.
Imagine how you, with your experince, would help someone who have program in a language with radically different design, like a programmer who have no idea how functional languages work, who coded in C for 40 years, would help someone to write program in Haskell.
You wouldn't look on the code of your program, you couldn't understand it. But you would look on shape of the project, would look on where are the things that are looking dangerous (if even judging from the comments attached to them), etc.
That's how AI acts today. Both on small codebases and on large ones.
My answer wasn't rhetorical or philosophical one. It was very practical.
If you ask whether AI may look on codebase that's many megabytes in size and impressively combine knowledge that's spread all over that codebase… it can do that, easily.
But there wouldn't any attempt to follow “the thread of logic”. Not on a tiny code and not an your large project.
If you ask if you can make it not to forget about some “important” details… it couldn't do that even with medium sized prompts and, of course, the more data you give it, the worse it performs.
That's total opposite of human where you may give it tests, lints and design docs and this would lead to deeper understanding and less errors.
With AI it's the opposite: the more you “push”, the less you get back, the more mistakes model does and the more chances of producing garbage instead of meaningful answer there is.
It would. As I have said: it's really impressive at pulling interesting facts from your codebase (and from AI training set, too). You can bounce your ideas against AI, you can ask it to show the rough shape of code that does something that you need in one toolkit or another… it's ultimate “rubber duck”.
But it's not reliable, it couldn't be trusted and thus it couldn't be used to build something on top of it.
Think about how Google search and then Stack Overflow changed the way we code. AI would have similar effect.
But these naïve assumptions of management that they would, soon, be able to fire their coders and replace with AI?
Well… “pump and dump” startups may do that. Anyone who needs reliability? Nope.