Viewing a single comment thread. View all comments

TinyBurbz t1_iy4kx0v wrote

>There's already very little difference to saying 'Hey, AI, I need an application that will take in a username and password, encrypt the password, and safely store both in a database for later', and a modern boiler-plate code generation system.

That's the thing though. Why use an AI when all the AI does is spit out code from a generator and then adds whatever modifications you specified from a library of human code? "Self coding" AI aren't programming from scratch, they all use libraries. Why call it AI?

1

User1539 t1_iy4tr9y wrote

I think you're conflating two different aspects of the argument.

You seem to be suggesting that if the code produced is, ultimately, just adding, modifying, or using, existing codebases then it's not 'AI', or if it's not 'from scratch' then it's not 'AI'.

There's a few things to break down here, first the code generated isn't the AI, and if the AI is just stitching together libraries to achieve a goal, well, that's what humans are doing too.

Most libraries will be re-written, by humans, over time, because new languages are invented and newer design patterns are accepted, etc ... and those new libraries, right now, are being written with the help of machine learning.

So, the 'produced code' not being wholly original isn't really any different than what people are doing now.

The 'AI' part of the process is where the pattern recognition abilities of machine learning are leveraged to generate working 'code' from human spoken language.

A computer without a trained natural language processor couldn't be told 'I need a webpage, that you log into, that will display results of a test where the database of the results are ...'

So, you would tell that to a developer, and count on his years of experience to understand how to pull the results of the test into a database, write a simple application to provide some system of logging in, displaying data, etc ...

If a human were doing that, likely he would use something like Spring boot, to generate boilerplate code, then something like KeyCloak to handle the security features, and ultimately a front-end javaScript framework to handle displaying the data.

So, where the AI comes in, is that it can recognize what the human wants from a natural language description and build it without the need for any more input than a human would have to give.

We're almost there, too. We can already describe fairly low-level logic, like sorting through a set of data and retrieving a record based on criteria, then using that record to perform a task, with machine learning systems like copilot.

If we see a broadening of something like that, to allow for the high-level description of complex algorithms, it'll become the defacto standard for creating future AI, and that AI will just be turned right around and used on the problem of understanding natural language and generating code, like a feedback loop.

When the AI is good enough, I'm sure someone will say 'rewrite all these libraries, but find any bugs (and there are plenty), and fix them'.

Then we'll see the tables turn. We'll have AI using code written by AI, to produce applications as described to it from humans speaking natural language.

The compiler is already doing some optimization too. If you code something in a human readable, but ultimately inefficient, way the compiler will likely just re-organize that to be more efficient when it generates machine code.

A good example of where things may go is that AI is starting to find some interesting algorithms in pure math. An important one to pay attention to is matrix multiplication, because it's something that computers have to do all the time, and it's very tedious, and difficult to optimize. In general, there is one good way to do it, and that's what any human will code when asked.

However, under certain circumstances, for specific sizes of matrices, you can optimize the algorithm and save the computer a ton of resources.

Almost no developer, today, even knows these algorithms exist. They're basically an AI curiosity. Even knowing they exist, I'll be practically no one is using them, because the time and effort to study them, and code them, is more effort than the general performance gain from implementing them would be worth.

What we'll see, and are frankly already starting to see, is that an AI will recognize those rare, special, conditions under which it can optimize something, and will generate the code to do so.

So, it really won't be long before we see a re-implementation of a lot of those libraries and stuff.

Then we'll all be stitching together AI code ... except, probably not, because we probably won't be coding at all. We'll just be describing our needs in natural language, and the AI platform will do the development.

1