Ich glaube, Sie fragen sich mit Ihrer Frage, wie viel zukünftige Entwicklung in der Lage sein wird, den Arbeitsaufwand eines Softwareentwicklers zu minimieren. Selbst wenn Sie eine KI haben, die Ihr gesamtes Programm schreiben kann, müssen Sie ihr immer noch sagen, was zu tun ist, genau wie bei einem automatischen Autobauer, Sie müssen ihr immer noch eine Blaupause geben, und diese Blaupause erfordert einige Arbeit.
Und wenn Sie eine KI haben, müssen Sie sie noch unterrichten und sie muss durch mehrere Projekte lernen. Daher denke ich nicht, dass eine KI für diese Art von Arbeit geeignet ist, sondern eher für einen deterministischeren Ansatz, bei dem Codegeneratoren verwendet werden. Diese Codegeneratoren können sehr komplex werden, müssen jedoch nicht unbedingt maschinelles Lernen einsetzen.
Es gibt jedoch bereits Forschungsarbeiten in den Bereichen Feature-Oriented Software Design und Aspect-Oriented Software Design. Diese befassen sich mit dem Zusammenstellen von Softwareanwendungen, indem sie einige Funktionen auswählen, die sie haben sollten, und dann wird Code dafür generiert. Ziel ist es, Implementierungen für mehrere Funktionen zu haben, die in einer bestimmten Domäne wiederholt angezeigt werden, und diese wie Bausteine zusammenzusetzen, je nach Ihrer speziellen Anwendung. Für die Webentwicklung umfassen die Funktionen beispielsweise Transaktionen, Statistiken, Skalierbarkeit, Protokollierung und alles, was Sie sich als wiederkehrende Merkmale verschiedener Web-Apps vorstellen können.
Merkmale und Aspekte unterscheiden sich von Komponenten, da es sich in der Regel um Querschnittsthemen handelt. Nehmen Sie zum Beispiel die Protokollierung. Sie können nicht einfach eine Bibliothek nehmen und in Ihre Anwendung aufnehmen und sagen, dass Sie sich jetzt anmelden. Sie müssen Ihre Protokollierungsaufrufe über Ihren gesamten Code verteilen, und hier sind Codegeneratoren praktisch. Ich habe kürzlich von all diesen Dingen aus diesem zweiteiligen Interview auf Software Engineering Radio gehört .
Es scheint, dass diese Art der Forschung in Europa und insbesondere in Deutschland, sogar in der Industrie, ziemlich im Trend liegt, wie ich aus eigener Erfahrung sagen kann. Die Codegenerierung kann nützlich sein, um den erforderlichen Infrastrukturcode zu generieren, sodass sich der Entwickler ausschließlich auf die Implementierung des spezifischen Verhaltens seiner Anwendung konzentrieren kann und sich nicht bei jedem Projekt mit denselben Nebenproblemen befasst.
Es bleibt abzuwarten, inwieweit dieser anwendungsspezifische Code eingegrenzt werden kann. Es kann sicherlich nicht vollständig beseitigt werden, sondern nur auf eine Art Blaupause reduziert werden, wie ich am Anfang erwähnt habe.