There are already a lot of companies and projects that rely on algorithms from artificial intelligence and machine learning (ML) for tools for software development and everything that has to do with them. The idea is obvious, despite the use of libraries, much of the programming is still a matter of diligence.
Of course, it doesn’t take long to create an entity with six or seven values, for example. Including the associated tables, DAOs, DTOs and the rest of the infrastructure that is required to transport this data from the endpoint to the database and back again, it quickly becomes a real work package. And that for every single entity.
Programming languages themselves are structured, very formal constructs that, when used correctly, describe a computer program that performs a specified task. Just like natural languages, they have rules for syntax and grammar; in addition to static semantics, there are also dynamic ones, because such a program is supposed to tell the computer how inputs or data are to be processed.
Since the mentioned properties of the languages are formally constructed, must be unambiguous and special cases and exceptions as in naturally occurring languages do not play a role, at least at first glance it even seems to be easier to have a program created by an AI that uses ML was trained, for example, to create natural language texts that a reader can understand and that cover a desired topic.
Language models such as GPT-3 are now so advanced that they can produce text that is written fluently . Well-known examples include Shakespeare-style poetry , a blog post about yourself, or jokes . So why not program code too?
Competition from little helpers without any AI
In contrast to natural language generators, program code generation and other assistance programs for which the use of AI could be considered have a long tradition. Programming languages themselves are formally described, the Backus-Naur form has its origin in the late 1950s, Niklaus Wirth suggested the Wirth syntax notation in 1977.
This short video demonstrates how to use Codota.
Codota paylaştı: 26 Kasım 2018 Pazartesi
Both – with extensions and in variants – have long been used to automatically generate parsers for programming languages specified in this way using compiler compilers . In modern Integrated Development Environments (IDE) there have been powerful code completion tools for more than a decade, in static code analysis tools check source code for possible sources of error and UML tools generate source code from model specifications.
In order to find widespread use, AI products must first overtake these solutions that have been developed over decades so that it is worth making the switch. Because, as always with the introduction of new technologies, “equally good” is not enough. Somehow the transition with familiarization has to pay off in the long term.
The difference becomes clear when the goal is to completely replace people with their artificial colleagues in the computer. If a blog post just misses the topic, digresses or a transition is a bit erratic and doesn’t quite fit the previous paragraph, then that’s more normal. A computer program that does something slightly different from what is expected, on the other hand, is a program for something else – or is simply flawed.
However, AI software can imitate human behavior, depending on what the data basis is. Therefore “human” errors can occur here too. In the blog post it is also not important whether the text says “a = b” or “a equals b”, in the program code “a == b” and a.equals (b) may make a very big difference.