Viewing a single comment thread. View all comments

TinyBurbz t1_iy4b5xy wrote

>I'm sure people will still describe things to AI in terms from computer science.

Unless they are building the AI, or the language the AI is built on, or building a dataset, or creating codeblocks for AI libraries.

1

User1539 t1_iy4itij wrote

I'm not sure what you're getting at, I mean, obviously we're talking about after a certain level of machine learning has taken place, but we're already seeing experiments in self-coding AI, and copilot, and I'm sure some people using copilot are working on machine learning algorithms.

Besides, a lot of machine learning requires use of massively parallel systems, like CUDA, that are only abstracted from libraries as it is.

As I've explained in earlier comments, we're already so far abstracted from the bare metal workings of a modern processor, we're closer to what I'm describing than what non-coders imagine we're doing.

We use increasingly high-level languages to describe behavior that's abstracted away by virtual machines and operating systems, and all of that is handled by layers of compilers and interpreters.

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.

We're almost there for CRUD apps and basic web interfaces. We can explain the intricate pieces to something like coPilot already.

Tools like this already exist, already using current levels of machine learning to push us towards the next iteration of tools that will use more advanced levels of machine learning, and so on.

We probably won't be completely aware of when we've passed the threshold, because it'll look like just another really neat plugin for your favorite IDE.

1

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