Forum: PC-Programmierung Ki-gestützte SW-Entwicklung -> wie abstrakt möglich?


von Jasson J. (jasson)


Lesenswert?

Hallo zusammen
-
gibt es schon KI-Tools, die einem die Übertragung eines Konzeptes in 
Code abnehmen?

Soweit ich den Git-Copilot verstanden habe (correct me, if wrong :>), 
ist das eine schlaue Variante von Auto-Complete. (?)

Ich meine eher etwas, wo man z.B. beschreibt, was eine Methode tun soll 
und vll. noch paar Constraints und der Code der Methode wird generiert.
Oder sogar eine Abstraktionsebene höher - eine ganze Klasse beschreiben. 
Vielleicht z.B. mit der Option, dass bestimmte public Methoden vorhanden 
sein müssen.

Viele Grüße :)

von F. (radarange)


Lesenswert?

Ja, das geht.

Je nachdem, was du willst, geht das extrem gut (bei Standardkram) bis 
extrem schlecht.
Heißt also konkret: Die Software eignet sich gut, wenn du Programmieren 
viel weniger magst als Code Review, Fehlersuche und Debugging. Die KI 
kann dir nämlich ersteres bequem abnehmen, die anderen Aktivitäten wirst 
du dann aber deutlich intensiver durchführen müssen.

von Εrnst B. (ernst)


Lesenswert?

Was vorallem extrem gut geht: Code produzieren, der auf den ersten und 
zweiten Blick korrekt aussieht, aber dann doch subtile Fehler 
produziert.

Ist auch nicht verwunderlich, die LLMs wurden darauf trainiert, Code zu 
erzeugen der aussieht wie der im Internet gefundene. Ob der Code richtig 
oder falsch ist, war kein Trainingsziel.

von Michael B. (laberkopp)


Lesenswert?

Jasson J. schrieb:
> gibt es schon KI-Tools

Vermutlich, wenn man bedenkt wie abgrundtief schlecht viele Software ist 
und wie es etablierte Firmen schaffen, jedes Jahr ein bisschen 
schlechter zu werden.

Das, was die KI bisher geliefert hat, hat wenigstens grosse Lacher 
erzeugt.

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Michael B. schrieb:
> Das, was die KI bisher geliefert hat, hat wenigstens grosse Lacher
> erzeugt.

Mittlerweile betreiben Kriminelle (m/w/d) eigene KI-Farmen zur Erzeugung 
von Schadcode. Das scheint bereits recht gut zu funktionieren. Den 
Cyberexperten ist mittlerweile deshalb das Lachen darüber schon 
vergangen.

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

Jasson J. schrieb:
> Hallo zusammen
> -
> gibt es schon KI-Tools, die einem die Übertragung eines Konzeptes in
> Code abnehmen?

Wenn du Online-kurse/trainings zu den KI-tools zählst, dann ja.


Was stellst Du dir unter "Konzept" vor? So was wie "Business-Konzept das 
mir in 5 Jahren drei Porsches finazniert." Ja, sind wir hier bei "Wünsch 
Dir was" ?!

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Dieter D. schrieb:
> Mittlerweile betreiben Kriminelle (m/w/d) eigene KI-Farmen zur Erzeugung
> von Schadcode. Das scheint bereits recht gut zu funktionieren.

Denen ist es egal, wenn der Code auf 30% der Zielsysteme versagt. Wenn 
jedoch die Steuersoftware von 30% der Flugzeuge versagt...

von Bradward B. (Firma: Starfleet) (ltjg_boimler)


Lesenswert?

> Mittlerweile betreiben Kriminelle (m/w/d) eigene KI-Farmen zur Erzeugung
> von Schadcode. Das scheint bereits recht gut zu funktionieren. Den
> Cyberexperten ist mittlerweile deshalb das Lachen darüber schon
> vergangen.

Beleg?
Ist die URL dieser KI-Farmen WeiseVonZion.ru ?

Ansonsten sind Script-Kiddies ein altbekanntes Phänomen.

: Bearbeitet durch User
von Markus K. (markus-)


Lesenswert?

Jasson J. schrieb:

> Ich meine eher etwas, wo man z.B. beschreibt, was eine Methode tun soll
> und vll. noch paar Constraints und der Code der Methode wird generiert.
> Oder sogar eine Abstraktionsebene höher - eine ganze Klasse beschreiben.
> Vielleicht z.B. mit der Option, dass bestimmte public Methoden vorhanden
> sein müssen.

Man kann z.B. ein Python-Programm schreiben lassen, das die Anzahl 
Personen in einem Bild zählt. Das funktioniert wunderbar und man erhält 
dann ein Programm ohne jedes Errorhandling. Man kann es dann bitten, das 
Errorhandling reinzumachen. Das macht es dann. Vielleicht nicht 
vollständig, dann muss man es noch bitten die fehlenden Stellen auch 
noch zu berücksichtigen. Das ist aber sowieso Zufall. Beim C++ Programm 
hat es beim Bilddatei öffnen ein Errorhandling drin, für die Dateien der 
neuronalen Netze nicht.

Man kann ihm natürlich auch sagen, es soll das Ganze in eine Funktion 
find_people stecken und dass es bitte englische Kommentare reinmachen 
soll, weil in Python eine deutsche Frage oft zu deutschen Kommentaren 
führt, während das C++ Programm keine Kommentare hat. Aber da ist viel 
Zufall im Spiel.

Man kann sehr schnell Sachen ausprobieren. "Bitte zeichne um die 
erkannten Personen einen roten Rahmen und schreib die Anzahl erkannter 
Personen in grüner Schrift rechts oben ins Bild. Außerdem soll kein 
einzelnes Bild, sondern ein Video eingelesen werden." Funktioniert.

Fazit:
Man kann abstrakte Anweisungen geben und es setzt die dann um. Ganz oft 
ist der Code aber nicht fertig. Aber das macht (mir) nichts. Während ich 
normalerweise erst mal 1-2h gegoogelt hätte habe ich hier innerhalb von 
ein paar Minuten ein lauffähiges Beispiel, das recht nah an meine 
Bedürfnisse rankommt.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Markus K. schrieb:
> Man kann z.B. ein Python-Programm schreiben lassen, das die Anzahl
> Personen in einem Bild zählt.

Das kann man aber auch per Google bekommen. Und der Code wird ja iW 
OpenCV aufrufen und selbst wenig Architektur und Algorithmen enthalten.

Wenn man etwas komplett neues implementieren möchte muss man das ja wohl 
erstmal sehr detailliert beschreiben. Da kann ich es auch in C++ 
beschreiben...

von Markus K. (markus-)


Lesenswert?

Niklas G. schrieb:
> Markus K. schrieb:
>> Man kann z.B. ein Python-Programm schreiben lassen, das die Anzahl
>> Personen in einem Bild zählt.
>
> Das kann man aber auch per Google bekommen. Und der Code wird ja iW
> OpenCV aufrufen und selbst wenig Architektur und Algorithmen enthalten.

Stimmt, aber man kann hier viel mehr Wünsche einfließen lassen. Man kann 
Variablennamen vorgeben, woher die Bilder kommen (Bilddatei, Videodatei, 
RTSP-Stream), ob es angezeigt oder gespeichert werden soll usw.

Ich muss nicht ein generisches Beispiel nehmen und dann auf meine 
Bedürfnisse umbauen sondern ich bekomme ein passendes Beispiel. Ich 
lasse mir öfters mal Codesnippets generieren, die ich dann einfach so 
direkt in meinen Code kopieren kann. Natürlich muss man das noch 
gründlich anschauen, aber das ist bei Code von Stackoverflow auch der 
Fall.

> Wenn man etwas komplett neues implementieren möchte muss man das ja wohl
> erstmal sehr detailliert beschreiben. Da kann ich es auch in C++
> beschreiben...

Das hängt von der Komplexität des Problems ab. Wenn ein Laie das Problem 
ausreichend gut beschreiben kann, dann hält sich der Aufwand in Grenzen. 
Wenn es komplexer wird, dann ist es oft sehr ineffizient, seine Gedanken 
umgangssprachlich zu formulieren um dann den passenden Code zu 
generieren.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Markus K. schrieb:
> Man kann Variablennamen vorgeben, woher die Bilder kommen

Das ist dann aber auch Baukastenschema.

Markus K. schrieb:
> Wenn ein Laie das Problem ausreichend gut beschreiben kann, dann hält
> sich der Aufwand in Grenzen.

Naja, auch ein einfaches Problem kann eine sehr komplexe Lösung und 
Software-Architektur erfordern. "Implementiere einen 5G-Protokoll-Stack" 
klingt einfach, aber... Und OpenSource-Beispiele gibt's nicht.

von F. (radarange)


Lesenswert?

Wie gesagt, das funktioniert schon einigermaßen, wenn die Probleme nahe 
an dem sind, zu dem es viele Beispiele gibt.
Auch Boilerplate-Code läßt sich ganz gut erzeugen.
Eher schlechte Erfahrungen habe ich damit gemacht, Code nach 
detaillierter Spezifikation generieren zu lassen, irgendwas wird da 
immer falsch verstanden und dann sucht man erstmal ewig. Ich kann 
schneller und besser Code schreiben als diesen zu analysieren und zu 
debuggen, daher muß man schon wissen, wo die Grenzen der KI-gestützten 
Codegenerierung liegen und wie weit man sich das antun will.

von Monk (roehrmond)


Lesenswert?

Markus K. schrieb:
> Natürlich muss man das noch gründlich anschauen, aber das ist bei Code
> von Stackoverflow auch der Fall.

Beu Stackoverflow hast du Einsicht in die Diskussion zum Code. Darun 
finden sich ift wertvolle Hinweise.

Bei KI Output fehlt dieser Teil.

: Bearbeitet durch User
von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

F. schrieb:
> Wie gesagt, das funktioniert schon einigermaßen, wenn die Probleme nahe
> an dem sind, zu dem es viele Beispiele gibt.

Das kommt bei mir irgendwie selten vor...

von Ein T. (ein_typ)


Lesenswert?

Εrnst B. schrieb:
> Was vorallem extrem gut geht: Code produzieren, der auf den ersten und
> zweiten Blick korrekt aussieht, aber dann doch subtile Fehler
> produziert.

Das kenne ich jetzt aber auch von manchen Entwicklern... :-)

von Markus K. (markus-)


Lesenswert?

Niklas G. schrieb:
> Markus K. schrieb:
>> Man kann Variablennamen vorgeben, woher die Bilder kommen
>
> Das ist dann aber auch Baukastenschema.

Genau. Aber das ist halt auch ein Teil von dem, was ich brauche. Es kann 
auch mehrere Klötzchen sinnvoll verbinden, aber nicht zu viele.

> Markus K. schrieb:
>> Wenn ein Laie das Problem ausreichend gut beschreiben kann, dann hält
>> sich der Aufwand in Grenzen.
>
> Naja, auch ein einfaches Problem kann eine sehr komplexe Lösung und
> Software-Architektur erfordern. "Implementiere einen 5G-Protokoll-Stack"
> klingt einfach, aber... Und OpenSource-Beispiele gibt's nicht.

Ich dachte da eher an GUI oder WEB.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Markus K. schrieb:
> Ich dachte da eher an GUI oder WEB.

Um zu wissen was die GUI genau machen soll muss man sich aber erst eine 
Menge Gedanken über UX machen. Das eigentliche Codieren, ob per KI oder 
manuell, ist dann ein vergleichsweise geringer Zeitaufwand.

: Bearbeitet durch User
von Monk (roehrmond)


Lesenswert?

Niklas G. schrieb:
> Das eigentliche Codieren, ob per KI oder manuell, ist dann kaum ein
> Unterschied...

Für erfahrene Entwickler.

Anfänger lernen dabei hingegen die Programmiersprache, die Werkzeuge, 
die Bibliotheken, Patterns, den Style der Firma und die Kommunikation im 
Unternehmen alles gleichzeitig. Für diese Leute kann Hilfe durch KI 
nützlich sein,

WENN sie denn guten Code generiert. Das wird noch besser, irgendwann.

Doch alleine die Aussicht, die absoluten Anfänger unterstützen zu 
können, beflügelt die Phantasie einiger Manager in Richtung 
Personalkosten. Im Extremfall kommt die Idee auf, keine Experten mehr zu 
brauchen, nur Anfänger. Es gibt sogar schon Firmen, die für automatisch 
generierte Testautomaten Werbung machen. Gibt's noch gar nicht, aber das 
hält sie nicht davon ab, die Software schon zu vermarkten (von Musk 
abgeschaut?).

: Bearbeitet durch User
von Markus K. (markus-)


Lesenswert?

Niklas G. schrieb:
> Markus K. schrieb:
>> Ich dachte da eher an GUI oder WEB.
>
> Um zu wissen was die GUI genau machen soll muss man sich aber erst eine
> Menge Gedanken über UX machen.

Ich habe ja davon gesprochen, dass wenn ein Anfänger das sinnvoll 
definieren kann, dann kann da auch die KI sinnvoll Code erzeugen. Wenn 
man sich erst eine Menge Gedanken über das UX machen muss, dann ist die 
GUI bereits relativ komplex. Dann kommt man schnell an den Punkt, dass 
das Beschreiben sehr aufwändig wird und die KI auch nicht mehr gut 
funktioniert.

> Das eigentliche Codieren, ob per KI oder
> manuell, ist dann ein vergleichsweise geringer Zeitaufwand.

Ich freu mich trotzdem, wenn es mir ein bisschen hilft. Mit der KI spare 
ich so vielleicht zwischen 0,5 - 2h pro Woche. Ich bin also etwa 1-2,5% 
produktiver geworden. Mir gefällt das (besser als nichts), aber es wird 
wohl noch etwas dauern, bis es auch nur 20% sind.

von Harald K. (kirnbichler)


Lesenswert?

Markus K. schrieb:
> Ich habe ja davon gesprochen, dass wenn ein Anfänger das sinnvoll
> definieren kann, dann kann da auch die KI sinnvoll Code erzeugen.

Das setzt voraus, daß der Anwender nicht nur sinnvoll "definieren", 
sondern auch sinnvoll und verständlich beschreiben kann. Wenn ich mir 
ansehe, welche Probleme manch' einer mit einer simplen 
Problembeschreibung hat, dann sehe ich da schlichtweg schwarz.

von Monk (roehrmond)


Lesenswert?

Markus K. schrieb:
> Mit der KI spare ich so vielleicht zwischen 0,5 - 2h pro Woche. Ich bin
> also etwa 1-2,5% produktiver geworden.

Unser GF hat in seinem Manager Magazin etwas von 30% gelesen, die andere 
damit bereits sparen. Was ich für eine Werbelüge halte.

: Bearbeitet durch User
von Norbert (der_norbert)


Lesenswert?

Da ich des Öfteren mit OpenCV arbeite, habe ich mal die folgende 
wirklich triviale Aufgabe gestellt:

»Erstelle ein Python Programm welches grüne Kreise in den unteren 10% 
eines PNG erkennt und markiert.«

Ich bekam auch "Etwas" was bei nicht ganz so genauem Betrachten durchaus 
als Python Code durchgehen könnte.

Zunächst wurde das PNG in Grayscale gewandelt. Dann wurde auf dem 
kompletten Bild gesucht. Der Code übrigens eine recht ähnliche Kopie 
dessen, was in der OpenCV Dokumentation steht.

Das man die Farbe grün nur recht schwierig in einem Grayscale Image 
erkennen kann, verstand das System wohl nicht richtig.
Das man zur Optimierung und Geschwindigkeitssteigerung nur die unteren 
10% mittels Blit kopiert und auswertet, verstand das System nicht 
richtig.
Kurzum: Irgendwo zwischen Mangelhaft und Ungenügend.

Wer also mit OpenCV vorher nicht gearbeitet hat, der beginnt nun erst 
einmal mit dem Studium der Dokumentation. Und danach nimmt er das 
hingerotzte Codefragment und wirft es angewidert in den virtuellen 
Mülleimer.

Einzelne LEDs blinken lassen können die AI Systeme aber schon teilweise.

LED-Blink-Programmierer sollten sich allerdings um ihre berufliche 
Zukunft sorgen machen.

von F. (radarange)


Lesenswert?

Niklas G. schrieb:
> F. schrieb:
>> Wie gesagt, das funktioniert schon einigermaßen, wenn die Probleme nahe
>> an dem sind, zu dem es viele Beispiele gibt.
>
> Das kommt bei mir irgendwie selten vor...

Dann gibt es zwei Möglichkeiten: Entweder machst Du nur Superspezielles 
oder du zerlegst deine Probleme nicht geschickt.
Man muß das Rad nicht neu erfinden, oftmals lassen sich ja Probleme 
geschickt zerlegen, abstrahieren und dann ggf. mit bereits vorhandener 
Software und geringen Anpassungen lösen (die man entweder mal 
geschrieben hat oder als Library lädt).

Norbert schrieb:
> Da ich des Öfteren mit OpenCV arbeite, habe ich mal die folgende
> wirklich triviale Aufgabe gestellt:
>
> »Erstelle ein Python Programm welches grüne Kreise in den unteren 10%
> eines PNG erkennt und markiert.«

Wahrscheinlich ist es hier geschickter, schrittweise vorzugehen und dem 
Codegenerator direkt mitzuteilen, wenn er falschen Code generiert. In 
deinem Satz stecken sehr viele implizite Annahmen, einige davon werden 
der KI egal sein, einige nicht. Da muß man dann eben ein wenig 
nachhelfen, aber das geht ja. Nur: Das ist jetzt der Punkt, an dem man 
sich den generierten Code genau anschauen muß und gegebenenfalls bereits 
vor dem Generieren umfangreiche Tests geschrieben hat, um 
sicherzustellen, daß sich der Code auch so verhält, wie man sich das 
denkt. Für mich ergeben sich dann mit den aktuellen Lösungen kaum noch 
Vorteile zum selber Schreiben, aber das muß nicht so bleiben.

von Markus K. (markus-)


Lesenswert?

Norbert schrieb:
> Da ich des Öfteren mit OpenCV arbeite, habe ich mal die folgende
> wirklich triviale Aufgabe gestellt:
>
> »Erstelle ein Python Programm welches grüne Kreise in den unteren 10%
> eines PNG erkennt und markiert.«
>
> Zunächst wurde das PNG in Grayscale gewandelt. Dann wurde auf dem
> kompletten Bild gesucht. Der Code übrigens eine recht ähnliche Kopie
> dessen, was in der OpenCV Dokumentation steht.

Know your tools. Evtl. mehrfach probieren (in den Antworten ist eine 
Zufallskomponente enthalten), Frage vielleicht anders stellen. Ich habe 
jetzt einfach Deinen Prompt ausprobiert und u.a. folgendes bekommen:
1
    # Definieren der unteren 10% des Bildes
2
    lower_10_percent = image[int(height * 0.9):, :]
3
4
    # Konvertieren des Bildes von BGR zu HSV
5
    hsv = cv2.cvtColor(lower_10_percent, cv2.COLOR_BGR2HSV)
6
7
    # Definieren der Grün-Farbe im HSV-Farbraum
8
    lower_green = np.array([40, 40, 40])
9
    upper_green = np.array([70, 255, 255])
10
11
    # Erstellen einer Maske für grüne Farben
12
    mask = cv2.inRange(hsv, lower_green, upper_green)
[Rest davor und danach weggelassen]
Ich habe es nicht ausprobiert, aber prinzipiell scheint mir der Ansatz 
sinnvoll zu sein.

> Das man die Farbe grün nur recht schwierig in einem Grayscale Image
> erkennen kann, verstand das System wohl nicht richtig.

Es verrennt sich ab und zu und da kommt man dann an der Ecke nicht 
weiter.

> Wer also mit OpenCV vorher nicht gearbeitet hat, der beginnt nun erst
> einmal mit dem Studium der Dokumentation. Und danach nimmt er das
> hingerotzte Codefragment und wirft es angewidert in den virtuellen
> Mülleimer.

Gerade in Python schreibt ChatGPT auch hin was es tut. Und wenn da 
drinsteht, dass es nach grayscale konvertiert, dann könnte das 
misstrauisch machen. Ganz ohne die Doku zu lesen.

von Norbert (der_norbert)


Lesenswert?

Das ist ja alles schön und gut. Aber wenn ich zig-mal probieren und 
versuchen und umformulieren muss, bin ich um Größenordnungen schneller 
wenn ich's direkt selbst schreibe. Zumal ich mir jedes mal wieder den 
erzeugten Code anschauen und auf Idiotien überprüfen muss.
Ich möchte gar nicht wissen was passiert wenn die Aufgabenstellung mal 
etwas komplizierter als Relais-On, Relais-Off ist. Da redet man dann 
zehnmal bis hundert mal mehr als notwendig. Zumindest wächst dann Prosa 
und Software-Klempnerei zusammen.

Granted, für jemanden der keine, aber auch wirklich gar keine Ahnung hat 
was er da tut, da mag's ja gelegentlich wie Magie erscheinen. (Falls es 
denn mal klappt)
Aber wirklich ernst nehmen kann man's sicherlich noch nicht.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

F. schrieb:
> Man muß das Rad nicht neu erfinden

Tja, ein paar Mal hab ich es schon versucht mir Code für einzelne 
Detailprobleme generieren zu lassen und es kam totaler Schmarrn raus...

Eine Sache die die KI eigentlich super können sollte wäre 
Produktrecherche - z.B. ICs mit bestimmten Eigenschaften finden, damit 
man sich nicht selbst durch Massen an Marketing-Blabla wühlen muss. Das 
wäre ein echte Zeitersparnis. Nur leider liefert die KI nur ICs die die 
Kriterien nicht erfüllen, ICs die gar nicht existieren (Halluzination), 
aber nicht die ICs von denen ich weiß dass sie passen würden...

von Markus K. (markus-)


Lesenswert?

Norbert schrieb:
> Das ist ja alles schön und gut. Aber wenn ich zig-mal probieren

Also bei mir hat der erste Versuch geklappt. So ein Python-Programm ist 
ja auch schnell ausprobiert.

> und versuchen und umformulieren muss, bin ich um Größenordnungen schneller
> wenn ich's direkt selbst schreibe. Zumal ich mir jedes mal wieder den
> erzeugten Code anschauen und auf Idiotien überprüfen muss.

Meine Erfahrung ist: In der Zeit, in der ich bisher gegoogelt habe, 
welche Libs es denn überhaupt gibt, habe ich jetzt ein funktionierendes 
Beispiel, das als Ausgangsbasis dienen kann.

Wie nützlich das ist hängt auch stark davon ab, wie gut man sich mit 
einem Thema auskennt. Ich habe auch schon öfters mit opencv rumgespielt, 
aber ich hätte jetzt nicht gewusst, wie man grünliche Farbe findet. Das 
hätte ich erst googeln müssen.

> Ich möchte gar nicht wissen was passiert wenn die Aufgabenstellung mal
> etwas komplizierter als Relais-On, Relais-Off ist. Da redet man dann
> zehnmal bis hundert mal mehr als notwendig. Zumindest wächst dann Prosa
> und Software-Klempnerei zusammen.

Es ist einfach ein Werkzeug. Mit Stärken und Schwächen. Wenn man es 
öfters benutzt, dann merkt man sehr schnell, welche Probleme es lösen 
kann und welche nicht. Es macht mich ein paar Prozent schneller, aber es 
ersetzt mich nicht.

von Markus K. (markus-)


Lesenswert?

Niklas G. schrieb:

> Eine Sache die die KI eigentlich super können sollte wäre
> Produktrecherche - z.B. ICs mit bestimmten Eigenschaften finden, damit
> man sich nicht selbst durch Massen an Marketing-Blabla wühlen muss. Das
> wäre ein echte Zeitersparnis. Nur leider liefert die KI nur ICs die die
> Kriterien nicht erfüllen, ICs die gar nicht existieren (Halluzination),
> aber nicht die ICs von denen ich weiß dass sie passen würden...

Also prinzipiell hat er natürlich intern keine Liste von sowas und wie 
erschöpfend er da googelt kann man nicht erkennen. Aber insbesondere die 
Halluzinationen sind natürlich sehr ärgerlich.

Ich habe neulich mal OpAmps vergleichen lassen. Das ist erstmal echt 
nützlich, weil er da Vergleichstabellen machen kann. Leider waren die 
Werte falsch. Er war sich sehr sicher, dass ein MCP604 14kHz GBW hat 
(korrekt 2,8MHz). Heute nochmal probiert, alles in Ordnung.

von Marci W. (marci_w)


Lesenswert?

Norbert schrieb:
> Da ich des Öfteren mit OpenCV arbeite, habe ich mal die folgende
> wirklich triviale Aufgabe gestellt:

[...]

>
> Wer also mit OpenCV vorher nicht gearbeitet hat, der beginnt nun erst
> einmal mit dem Studium der Dokumentation. Und danach nimmt er das
> hingerotzte Codefragment und wirft es angewidert in den virtuellen
> Mülleimer.

Die Frage ist doch, ob es bereits KI-Systeme gibt, die Systeme wie z.B. 
OpenCV gebnerieren können?! OpenCV passend zu verwenden, dazu gehört 
ja nicht allzu viel Gehirnschmalz. Allerdings würde ich es mir z.B. 
nicht zutrauen, ein System wie openCV from scratch zu entwickeln. Da ist 
einfach zu viel Theorie der Bildverarbeitung, Mustererkennung etc. 
dabei, und es wird dann recht zeitaufwändig, sich da einzuarbeiten...

ciao

Marci

von Markus K. (markus-)


Lesenswert?

Marci W. schrieb:

> Die Frage ist doch, ob es bereits KI-Systeme gibt, die Systeme wie z.B.
> OpenCV gebnerieren können?!

Wenn die Frage ist, ob es KIs gibt, die 90% der Softwareentwickler 
ersetzen könnten: Nein, die gibt es nicht.

> OpenCV passend zu verwenden, dazu gehört
> ja nicht allzu viel Gehirnschmalz.

Na doch. Man muss wissen wann man welche Funktion verwendet und wie man 
sie in Kombination verwendet. Wie beim Programmieren immer und überall.

> Allerdings würde ich es mir z.B.
> nicht zutrauen, ein System wie openCV from scratch zu entwickeln. Da ist
> einfach zu viel Theorie der Bildverarbeitung, Mustererkennung etc.
> dabei, und es wird dann recht zeitaufwändig, sich da einzuarbeiten...

Irgendwas programmieren lassen, was du vorne und hinten nicht verstehst 
ist glaub nicht sinnvoll. Du könntest ja die Anforderungen gar nicht 
formulieren.

von F. (radarange)


Lesenswert?

Zum Glück gibt's hier Leute, die sich ein wenig auskennen.
KI wird nicht sofort alle unsere Probleme magisch lösen, es gibt aktuell 
einige interessante Einsatzbereiche für entsprechende Werkzeuge und da 
funktioniert das dann auch.
Es werden sich sicher mit der Zeit auch Vorgehensweisen entwickeln, wie 
Probleme zu formulieren sind, um sie mit KI-gestützten Codegeneratoren 
ordentlich lösen zu können. Das ist aktuell noch alles recht neu und 
experimentell, da muß man sich darauf einlassen. Oder man läßt es eben 
und beschwert sich dann darüber, daß die KI aus einem kurzen Satz kein 
komplexes System fehlerfrei entwickeln kann.
Wir sehen ja heute bereits, daß KI-Codegeneratoren relativ brauchbar 
darin sind, Code zu entwickeln, der relativ "einfach" ist. Also keine 
komplexe Beschreibung, sondern eher angepaßte Codebeispiele, wie man sie 
auch in Tutorials und Forendiskussionen findet. Das funktioniert relativ 
gut und ist oftmals unglaublich hilfreich, weil oft Initialisierungscode 
schwierig ist. Der Traum, der KI irgendeine Eingabe zu geben und dann 
ohne weiteres Zutun ein tolles Programm rauszukriegen, ist aber, so er 
denn überhaupt erfüllbar ist, noch in weiter Ferne.

von Philipp K. (philipp_k59)


Lesenswert?

Ich muss sagen das es mich auch gewundert hat was da alles geht.

Ich habe ein kleines 1000 Zeilen Arduino/c++ Programm, das zweckmässig 
funktioniert, aber noch etwas unübersichtlich ist.

Ich habe einfach nur "refactor my Code" angegeben und es wurden richtig 
benannte enums erstellt, einiges an Code in gut strukturierte und sogar 
richtig gut benannte Unterfunktionen gepackt, sowie die gesamt 
Lesbarkeit immens verbessert. Variablen inits neu sortiert und 
gruppiert.

Leider klappte das nur bis Zeile 200 ;D

Gibt es eigentlich einen ki Service der die 1000 Zeilen schluckt?

Kann auch was kosten.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Markus K. schrieb:
> Irgendwas programmieren lassen, was du vorne und hinten nicht verstehst
> ist glaub nicht sinnvoll. Du könntest ja die Anforderungen gar nicht
> formulieren.

So ganz ungewöhnlich ist das nicht.

In der Industrie wird so einiges durch Oursourcing mit unklarem oder 
nicht vorhandenem Lastenheft gemacht. Wenn das Ergebnis zufällig zu 
funktionieren scheint wird es genommen. "It compiles, lets ship it".

Im Hobbybereich: 90% der Arduino-"Programmierer" versuchen Probleme zu 
lösen die sie nicht durchdrungen haben mit Copy-Past von Zeug das sie 
nicht ansatzweise verstehen.

Daher ist die Hemmschwelle was KI-generiertes zu nehmen nicht so hoch. 
Wer vorher keine Ansprüche hatte oder viel Gottvertrauen hat nimmt heute 
schon ungeprüft KI, das Outsourcing des kleinen Mannes.

Man sollte sich klar machen KI denkt nicht, KI lernt auswendig. Hat sie 
das Richtige auswendig gelernt bekommt man ein richtiges Ergebnis, wenn 
es  nicht von falschen Informationen überlagert wurde. Hat sie 
Wissenslücken phantasiert sie im schlimmsten Fall.

: Bearbeitet durch User
von Εrnst B. (ernst)


Lesenswert?

Philipp K. schrieb:
> Gibt es eigentlich einen ki Service der die 1000 Zeilen schluckt?

Schau dir mal
https://codeium.com/
an
(Kostenlose Version reicht, evtl. sogar der online-playground)
Das hat wesentlich mehr Kontext und kann den auch aus mehreren Dateien 
zusammensammeln...

von Rbx (rcx)


Lesenswert?

Jasson J. schrieb:
> gibt es schon KI-Tools, die einem die Übertragung eines Konzeptes in
> Code abnehmen?

Das ist ja eigentlich die Algobasis. Das man mit dem Lambda-Kalkül 
relativ weit kommen kann, haben wir gesehen.

Bibliotheken und Templates gibt es ja - wenn die KI die passenden Sachen 
heraussuchen kann, ist sie gut dabei.
Nur manchmal hast du keine Bib und das müsste die KI klar zu erkennen 
geben - Oft ist es ja auch so, dass überhaupt erstmal eine Frage 
gestellt werden muss, oder oder der Verstand vorhanden, die Frage zu 
überdenken und operationalisiert auszuformulieren.

Und warum sollte eine KI, wenn sie schon eine Lösung findet, ein 
Programm erstellt, nicht gleich das Testprogramm dazu erstellen und 
nutzen?

So als Ablaufplanbegleitung könnte eine KI auch ganz gut sein. Was 
früher hoch organisierte, exzellent ausgebildete Teams geschafft haben, 
müssen ja heute oft einzelne Überlebenskämpfer mit halbgarer Ausbildung 
hinbekommen. Wenn genug Motivation da ist, könnte das funktionieren.
Es gibt durchaus inspirierende Ansätze diesbezüglich.

von Markus K. (markus-)


Lesenswert?

Hannes J. schrieb:

> Im Hobbybereich: 90% der Arduino-"Programmierer" versuchen Probleme zu
> lösen die sie nicht durchdrungen haben mit Copy-Past von Zeug das sie
> nicht ansatzweise verstehen.

Ja, aber das hat halt seine Grenzen was die Komplexität des Problems 
angeht.
Man kommt mit der KI heutzutage ein Stück weiter als mit Copy&Paste, 
aber etwas so komplexes wie eine große Lib ohne ordentliche Beschreibung 
wird nichts werden.

> Man sollte sich klar machen KI denkt nicht, KI lernt auswendig. Hat sie
> das Richtige auswendig gelernt bekommt man ein richtiges Ergebnis,

Die KI lernt nicht nur auswendig, sondern sie erkennt auch Muster. 
Gerade deswegen kann man sie ja auch sehr gut dazu verwenden, mehrere 
Komponenten miteinander zu kombinieren. Das hat aber aktuell noch seine 
Grenzen.

von Philipp K. (philipp_k59)


Lesenswert?

Εrnst B. schrieb:
> Schau dir mal
> https://codeium.com/
> an

der war auch nicht schlecht, macht aber auch Fehler. Dann muss ich es 
halt händisch mit den KI-Tips umschreiben. Das ist auch okay, leider nur 
Zeitaufwendig.

Markus K. schrieb:
> Im Hobbybereich: 90% der Arduino-"Programmierer" versuchen Probleme zu
>> lösen die sie nicht durchdrungen haben mit Copy-Past von Zeug das sie
>> nicht ansatzweise verstehen.

Bei mir ist das so, das ich die Lösung meistens kenne (Gewusst wie.). 
Ich sehe da halt nur viele Stunden arbeit (z.B. einen Display Treiber 
für einen AVR zu schreiben), dann schaue ich ob es eine Lib gibt bei der 
sich jemand die Mühe schon gemacht hat um beim eigentlichen Kern bleiben 
zu können.

Die KI kann halt theoretisch bei Fleißarbeit helfen, z.B. irgendein 
HW-Protokoll, API Anbindungen, Konvertierungen in C++ aufzuschlüsseln.

Man selbst weiß wie man es macht, man müsste Zig Tabellen und PDFs 
durchforsten, alles in c++ übertragen und am Ende hat man nichts davon 
wenn man es nicht beruflich braucht.

: Bearbeitet durch User
von Εrnst B. (ernst)


Lesenswert?

Philipp K. schrieb:
> der war auch nicht schlecht, macht aber auch Fehler. Dann muss ich es
> halt händisch mit den KI-Tips umschreiben.

Codeium hat zum einen die KI-Vervollständigung/Vorschläge im Editor beim 
Tippen, aber auch einen Chat mit dem man größere Sachen/Refactoring 
machen kann.

Aber ja, etwas Handarbeit bleibt immer, und kontrollieren muss man den 
erstellten Code auch.
Die KI macht immer Fehler. Einfach weil die zum trainieren wild mit 
allem möglichem Code aus dem Internet gefüttert wurde, egal wie gut, 
korrekt oder falsch der ist.

Also nicht wundern, wenn die KI 1:1 die Fehler nachbauen will, wegen der 
sich jemand incl. Codeschnipsel an Stackoverflow gewendet hat...

Ansonsten funktioniert das einfach nach der Hoffnung, dass im Internet 
schon mehr korrekter als falscher Code rumfliegen wird.

Tipp für das Arbeiten mit den KI-Vorschlägen: immer zuerst einen kleinen 
Kommentarblock tippen, was die nächste Funktion/Codeabschnitt machen 
soll, dann werden die Vorschläge um Welten besser.
Etwas Copy&Paste aus dem Datenblatt hilft auch.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.