I will say no not yet, and I will go further and say it is not that important, but if it were possible, it will be inconsistent with the requirements.
Because there is always a communications barrier between those who make the requirements and those who have to fulfill it.
That said, this is not new. The process of extracting exact requirements from the customer is never a perfect one and in some cases, users will have to get involved because they will be the ones who may have difficulty trying to run 2 apps at once including the new database app that you are creating and the issue is one of not enough RAM on the machine and the steps that THAT user had to jump through, to be able to get things working so they don’t crash their machine is nothing short of amazing.
Now we are dealing with non-functional requirements - she/he needs a better terminal (PC), which management is unwilling to purchase.
Now the developer app is working fine on his test rig, and the user is having issues and the developer has to come into the customer office, and talk to the user, cutting out the executives, the s/w consultant and the in house engineer who is suppose to tell the development firm that management sucks since they cut the PC budget yet again. And don’t even want to buy RAM.
NOW! The developer has to start a process to find ways to cut the memory requirements of the application, by not loading too many windows on the screen and use less colorful dialog (or whatever). He is trying hard not to say, that you need to upgrade the terminals, since the firm he works for already signed a contract, part of which indicated that the PC specs were adequate - but no one really checked.
OK, so the point is, I don’t think AI is at the point where it will need to deal with all this craziness.
Colin B Maharaj
What do you mean by writing code. AI is actaully wrting code. What AI is doing is it writes invisible instructions set from input and output specification which otherwise would have been very complicated and would have take millions(or maybe more) of lines if humans would have coded those usecases by hand themselves. The code we write to train the data and the consume the model is actually very small part of the code. Actual code is hidden within the trained model which woiuld have taken probably millions of lines if humans would have written by conventional programming methods. Do Check is whatsays.Andrej
Probably what you meant is will AI be able to generate human readable code snippets in high level programming languages that we write to build applications today. To answer that part yes there are efforts from few startups in that direction as well. There are efforts where an entire app is being generated by AI. There can be two approaches to it, either make the code invisible (ie in form of trained model) which can only generate the end app or the trained model can generate human readable code in a high level language which in turn compiles into an app.
My personal take is it would not take more than a decade or two before you can build a fully customized app or website or webservice as per your exact requirements by just convesing with a voice agent like apple siri or google home or amazon alexa.
Constructive hyper-heuristics are said to generate their own algorithms. But what they actually do is take snipets of other heuristic algorithms and piece them together.
Imagine you are trying to solve a combinatorial optimisation problem, like traveling salesman. You have an array with 200 different heuristic algorithms that you can choose from. You then use something like reinforcement machine learning to determine which heuristics to call and when and for how long.
You end up with a list of instructions run algorithm 55 for 5 seconds followed by algorithm 42 for 3 seconds and then algorithm 105 for 10 seconds. Your hyper-heuristic then returns that list of instructions as its output and you can run it against your data instance.
A travelling salesman algorithm was constructed by a machine learning algorithm, though one could argue that the hyper-heuristic hasn't actually written any code.