Lohnt es sich, Programmiersprachen zu lernen, wenn wir KI haben und immer besser wird?

Aha. Anhand deines zweiten Postings wird klar, warum Du fürs Erste Chat-GPT genommen hast. Weil sonst noch weniger bei rum kommt. :-)
 
Manche denken hier Softwareentwicklung besteht nur aus auswendig lernen von Programmiersprachen :D

Wenn sich ein Softwareentwickler als "Programmierer" bezeichnet dann sollte er zurecht Angst haben vor jeder "KI" die da kommt :daumen:
 
Klar gibt es aktuell viele Beispiele, bei denen effektvoll demonstriert wird wie ChatGPT ein Programm schreibt, aber das sind doch sehr rudimentäre Beispiele. Sowas wie "Schreibe ein Programm, das einen Temperatursensor ausliest". Heraus kommen dann 30 Zeilen Code, die ein paar Daten auslesen und auf der Konsole ausgeben. Und nun? Ich arbeite aktuell an einer betriebsinternen Software zur Projektvetwaltung und mit allen Funktionen und drum und dran sind das mittlerweile 25.000 Zeilen Code - zwar nicht unbedingt alles selbst getippt, aber es soll hier auch nur als Vergleich dienen. Ich möchte gar nicht wissen wie viel Code in SAP und Co steckt...

In einem perfekten Szenario mit banalen und immer gleichbleibenden Anforderungen können KIs mittelfristig Programmieraufgaben übernehmen, aber letztendlich wird es immer Ausnahmen geben, die die KI nicht erfassen kann. In meinem Fall kommen ständig Verkaufs- und Service-Abteilung mit Sonderwünschen auf mich zu, die im ursprünglichen Konzept nicht vorgesehen waren. Daraufhin muss ich Anpassungen vornehmen, die eine KI in der Form (noch) nicht leisten kann, weil es teilweise auf sowas wie < vs <= hinausläuft.

Um konplexe Anwendungen von einer KI schreiben zu lassen, muss man die Anforderungen derart präzise formulieren, dass das fast schon Pseudo-Code gleichkommt.

KIs werden daher auf absehbare eher nicht die Softwareentwickler dieser Welt ersetzen, aber in Form von Expertensystemen durchaus zahlreiche andere hoch geschulte Berufe gefährden. Aber bis dahin wird noch viel Zeit vergehen, weil auch ChatGPT zum Teil noch ziemlich viel Unsinn verzapft.
 
  • Gefällt mir
Reaktionen: mental.dIseASe, floq0r und andy_m4
Ich sehe da zumindest für die Produkte die mein Unternehmen im Angebot hat kein Problem. Die Zusammenhänge sind derart komplex und erfordern so viel Optimierung, dass ich schon ein Problem damit hätte der KI das Datenmodell beizubringen damit ich brauchbare Entwürfe zurück bekomme.
Meine Burschen nutzen da und dort chatGPT für Code-Schnippsel, ohne Erfahrung beim Coden hilft ihnen das bisher so viel wie ein kopiertes Tutorial - Nützlich, muss aber trotzdem verstanden werden.

Im übertragenen Sinn könnte man chatGPT fast als Compiler höherer Ordnung bezeichnen.
 
  • Gefällt mir
Reaktionen: Raijin
0x8100 schrieb:
schönes beispiel, ein \d{8}-\d{8} hätte es bei dieser frage nämlich auch getan. die gelieferte antwort ist überspezifisch und unnötig komplex (zum verstehen als auch performancetechnisch)
Ob sie überspezifisch oder nicht ist, lässt sich aus meiner ursprünglichen Frage nicht ableiten. In der Tat wollte ich eigentlich nur das Muster erkennen (um es als "capture" zurückgeben lassen). Das Muster auf Gültigkeit bzgl. der Datumsangaben zu validieren, war nicht die Anforderung. Es ist übrigens eine interessante "Nebenfrage" ob die Validierung nicht doch sinnvoll wäre, um das Gesamtergebnis robuster zu machen.
Das ChatGPT bei meiner Folgefrage dann zu dem von Dir vorgeschlagenen Pattern gewechselt ist, zeigt übrigens schön auf, das die KI nicht wirklich versteht was sie tut. sondern eine "wahrscheinlich sinnvolle" Antwort generiert.

Raijin schrieb:
Ich arbeite aktuell an einer betriebsinternen Software zur Projektvetwaltung und mit allen Funktionen und drum und dran sind das mittlerweile 25.000 Zeilen Code - zwar nicht unbedingt alles selbst getippt, aber es soll hier auch nur als Vergleich dienen
25.000 Zeilen ist nun nicht wirklich viel, BTW. Eine Projektverwaltungsssoftware wird nun auch keinen großen Anteil an komplexen Alogrithmen haben, sondern aus lauter Standardoperationen bestehen.
Also ein großer Haufen Codeschnippsel, von denen die meisten von einer KI erstellt werden könnten.

Mit sowas wie ChatGPT muss man natürlich noch sehr kleinteilig arbeiten, aber man muss schon mit weiter entwickelten Systemen rechnen. ChatGPT ist ja auch eher ein universeller ChatBot, der gar nicht primär für Softwareentwicklung gebaut wurde. Das es so gut geht, zeigt das Codeerstellung doch eine wesentliche "mechanischrere" Tätigkeit ist, als viele Programmierer glauben.

Raijin schrieb:
KIs werden daher auf absehbare eher nicht die Softwareentwickler dieser Welt ersetzen, aber in Form von Expertensystemen durchaus zahlreiche andere hoch geschulte Berufe gefährden

Was ist der Unterschied zwischen einem Softwareentwickler und einem "hoch geschulten" Beruf?
Der Einfluss wird eher indirekt sein:

Es wird Bereiche geben, wo die Fachanwendungen von der Fachseite mit KI-gestützten Low-Code Methoden selbst entwickelt werden können. Die sind dann vielleicht nicht ganz so gut oder ganz so performant wie eine "klassisch" geschriebene Software, aber dafür viel billiger.
 
TomH22 schrieb:
25.000 Zeilen ist nun nicht wirklich viel, BTW. Eine Projektverwaltungsssoftware wird nun auch keinen großen Anteil an komplexen Alogrithmen haben, sondern aus lauter Standardoperationen bestehen.
Darum geht's auch gar nicht. Es ist ja nur ein Beispiel dafür, dass eine KI - Stand heute - selbst so etwas vermeintlich Simples schon nicht bewerkstelligen könnte, weil eine vollständige Anwendung aus diversen Komponenten, Funktionen, Ansichten, Schnittstellen und zB auch Berechtigungen besteht. Die Anfrage an ChatGPT würde aus einem halben Roman bestehen und das UI, wäre vollkommen konfus, weil die KI die Zusammenhänge nicht kennt.
Und so nebenbei: So simpel wie du glaubst ist die Anwendung auch nicht, sonst gäbe es ja genug von der Stange. Zu meinem Leidwesen sind da aber durchaus komplexe Anforderungen dabei.

TomH22 schrieb:
Was ist der Unterschied zwischen einem Softwareentwickler und einem "hoch geschulten" Beruf?
Du missverstehst. Da gibt es keinen Unterschied im eigentlichen Sinne, sondern gemeint sind explizit andere Berufe. Insbesondere solche, bei denen beim selben Input sehr vorhersagbarer Output produziert wird. Zum Beispiel Juristen, die einen Vertrag prüfen. Geh zu 10 Notaren wegen eines Kaufvertrags einer Immobilie und du bekommst 10x nahezu dasselbe Ergebnis.

Generell werden KIs auf absehbare Zeit aber eher als zusätzliches Werkzeug dienen und keine Berufe vollständig obsolet machen - bis auf .. Börsenmakler :p
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: mental.dIseASe
floq0r schrieb:
Es sieht so aus als hätte chatGPT genau erkannt, dass es sich hier um Datumsangaben handelt und hat deswegen das Pattern auf gültige Werte eingeschränkt.
Und was ist, wenn das nur Zufall war? Dass die Werte nur zufällig wie Datumswerte aussehen?
 
  • Gefällt mir
Reaktionen: BeBur
Naja ich finde halt, dass man sich klar sein sollte, dass die KI auch Anforderungen hineininterpretieren kann, die es vielleicht gar nicht geben kann. Unabhängig von einem RegEx, aber der zeigt es ganz nett.

Menschen neigen dazu, bei unklaren Anforderungen Rückfragen zu stellen. So kenne ich das zumindest aus meiner Arbeit.
 
  • Gefällt mir
Reaktionen: mental.dIseASe, Raijin und BeBur
floq0r schrieb:
Es sieht so aus als hätte chatGPT genau erkannt, dass es sich hier um Datumsangaben handelt und hat deswegen das Pattern auf gültige Werte eingeschränkt.
Die Interpretation nicht mitzuliefern ist allerdings ein sehr großes Versäumnis und dazu kommt noch die Tatsache, dass die angebotene Lösung nicht existierende Daten akzeptiert, aber andererseits z.B. sowas wie "10230401-20230231" akzeptiert. In vielen Kontexten wäre so eine Lösung für ein produktivsystem völlig inakzeptabel. Das wäre daher auch die korrekte Antwort gewesen seitens ChatGPT "ich glaube du willst hier Datumsangaben mit regex matchen, lass mich dir sagen, dass das eine ganz schlechte Idee ist aus den folgenden Gründen: [...]. Falls du dir aber sicher bist, dass das kein Problem ist hast du hier ein passendes regex zu deiner Frage: [...]"
 
  • Gefällt mir
Reaktionen: tollertyp
Im Bereich Softwareentwicklung wird sich wahrscheinlich CoPilot (X) mehr durchsetzen bzw. so wie gedacht als Assistent dienen denke ich.
 
Es gelten für KI alle von der Automatentheorie und Berechenbarkeit gesetzten Grenzen auf deren Fundament moderne Computer überhaupt basieren. (Von-Neumann Architektur). Daraus lässt sich schon extrem viel folgern.

Um es Mal so zu sagen: Eine KI kann nicht einmal für ein sehr einfachen Code entscheiden, ob es korrekt berechnet. Oder überhaupt anhält oder unendlich weiterechnet.
Ganz davon zu schweigen Code zu erstellen für eine bestimmte Problemstellung.

Was ChatGPT an Code ausgibt für eine bestimmte Aufgabe, ist nicht anderes als Code, den Menschen (so oder so ähnlich) geschrieben haben.

Wir können also getrost folgern:
Je mehr Bereiche Software, auch KI, durchdringt und genutzt wird, desto mehr haben wir Softwerker zu tun. Uns geht die Arbeit nie aus. So viel ist sicher.😁
 
BeBur schrieb:
Die Interpretation nicht mitzuliefern ist allerdings ein sehr großes Versäumnis und dazu kommt noch die Tatsache, dass die angebotene Lösung nicht existierende Daten akzeptiert, aber andererseits z.B. sowas wie "10230401-20230231" akzeptiert. In vielen Kontexten wäre so eine Lösung für ein produktivsystem völlig inakzeptabel. Das wäre daher auch die korrekte Antwort gewesen seitens ChatGPT "ich glaube du willst hier Datumsangaben mit regex matchen, lass mich dir sagen, dass das eine ganz schlechte Idee ist aus den folgenden Gründen: [...]. Falls du dir aber sicher bist, dass das kein Problem ist hast du hier ein passendes regex zu deiner Frage: [...]"

Worauf Du hinauswillst ist, das Regex nur eine lexikalische Analyse liefern, sie können keine syntaktische und semantische Analyse machen. Jetzt könnte man so eine KI sicher so bauen, dass sie einen immer einen großen Disclaimer schreibt, es ist aber dahingestellt, ob das zielführend ist. Würde dann wie hier bei CB sein, wo man für simple Fragen auch eine Grundsatzbelehrung bekommt ;)

Aber im Kern sind wir uns ja einig: Die KI kann einem Routinearbeit abnehmen, man muss aber noch wissen was man tut. Da ist aber kein neues Problem. Ich muss auch bei etablierten Methoden (wie etwa Google Suche oder benutzen von 3d Party Libraries) Ahnung haben, sonst wird es kritisch.

ChatGPT liefert ja immerhin eine kommentierte Beschreibung des Outputs. Ich habe den heute noch mal neu generiert (ursprünglich habe ich das Gelaber mit Ctrl-C abgebrochen...):
1684612995602.png


(Die willkürliche Einschränkung auf 20er Jahre ist heute neu...)

Ich habe dann die Validierung des Datums eingefordert:
1684613139114.png

(Ich habe jetzt nicht geprüft ob der Code funktioniert)
Hier der vollständige Output:
Code:
$pattern = '^20\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|30)-20\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|30)$'

$regex = [regex]::new($pattern)

# Example usage
$match = $regex.Match("20230401-20230430")
if ($match.Success) {
    $leftDate = [datetime]::ParseExact($match.Groups[0].Value, "yyyyMMdd", $null)
    $rightDate = [datetime]::ParseExact($match.Groups[1].Value, "yyyyMMdd", $null)
    if ($leftDate -lt $rightDate) {
        Write-Host "Valid date range."
    } else {
        Write-Host "Invalid date range: left date is not lower than right date."
    }
} else {
    Write-Host "Invalid format."
}

Was man hier sehr gut seht: Die grundlegende Fähigkeit, ein Problem ein Schritte zu zerlegen, dabei Randbedingungen zu beachten, Fehlerbehandlung zu implementieren, und all die anderen Aspekte die Softwarentwicklung ausmachen, kann die KI einem nicht abnehmen.

Sie kann einem Routinearbeit abnehmen, z.B. rauszufinden, das man im obigen Beispiel die Methode parseExact verwenden kann. Ich nutze Powershell nur gelegentlich und habe dadurch wenig Übung. Da spart es Zeit.
Ich würde so Code aber nicht ohne weiteres ungesehen übernehmen. Ich würde mir z.B. die Doku der ParseExact Methode noch mal ansehen, usw.
 
Zuletzt bearbeitet: (Typos und Satzbau korrigiert)
  • Gefällt mir
Reaktionen: Raijin und BeBur
LencoX2 schrieb:
Es gelten für KI alle von der Automatentheorie und Berechenbarkeit gesetzten Grenzen auf deren Fundament moderne Computer überhaupt basieren. (Von-Neumann Architektur). Daraus lässt sich schon extrem viel folgern.

Um es Mal so zu sagen: Eine KI kann nicht einmal für ein sehr einfachen Code entscheiden, ob es korrekt berechnet. Oder überhaupt anhält oder unendlich weiterechnet.
Ganz davon zu schweigen Code zu erstellen für eine bestimmte Problemstellung.
Ist das im zweiten Abschnitt was du meinst mit "Daraus lässt sich schon extrem viel folgern"? Weil der Abschnitt ist (natürlich) falsch, du hast da das Halteproblem stark missverstanden. Für sehr einfachen Code kann jeder Mensch und können auch Computer seit Jahrzehnten schon entscheiden, ob es korrekt rechnet oder anhält oder unendlich weiterrechnet. Schon moderne Compiler berücksichtigen das und Linter können das auch.

Ich sehe gerade nicht, inwiefern der Berechenbarkeit gesetzte Grenzen ausgerechnet für KI eine Einschränkung ist, das sind ja schließlich prinzipielle Einschränkungen.

LencoX2 schrieb:
Was ChatGPT an Code ausgibt für eine bestimmte Aufgabe, ist nicht anderes als Code, den Menschen (so oder so ähnlich) geschrieben haben.
Da müsste man "so oder so ähnlich" schon sehr weit auffassen damit das stimmt, aber das wäre irreführend.
 
  • Gefällt mir
Reaktionen: tollertyp
Hm. Kern meiner Aussage war ja: KI sorgt im Endeffekt für immer mehr Arbeit für uns menschliche Entwickler.

Stellst du diese Aussage wirklich in Frage, weil meine Hinterlegung mit dem Halteproblem aber doch entscheidbar, aber nur ein bisschen, sei?

Ich sehe das eher als Bestätigung meiner Aussage:
Da eine allgemeine Lösung nicht existiert, baut man so viel Logik ( =KI), bis es so aussieht, als wenn es irgendwie ja doch geht.
 
LencoX2 schrieb:
Hm. Kern meiner Aussage war ja: KI sorgt im Endeffekt für immer mehr Arbeit für uns menschliche Entwickler.
Mich stört das Wort immer.

Du solltest wissen: Verallgemeinerungen sind ausnahmslos immer falsch.

LencoX2 schrieb:
Stellst du diese Aussage wirklich in Frage, weil meine Hinterlegung mit dem Halteproblem aber doch entscheidbar, aber nur ein bisschen, sei?

Ich sehe das eher als Bestätigung meiner Aussage:
Da eine allgemeine Lösung nicht existiert, baut man so viel Logik ( =KI), bis es so aussieht, als wenn es irgendwie ja doch geht.
Ehrlich gesagt bei dem Teil verstehe ich genauso viel wie wenn eine KI den Text lesen würde. (= soll heißen, ich bin der Meinung, selbst ChatGPT ist keine KI, weil sie zwar gut ist den Kontext zu berücksichtigen, aber von Verständnis fehlt ihr dennoch noch jede Spur)
Ergänzung ()

LencoX2 schrieb:
Um es Mal so zu sagen: Eine KI kann nicht einmal für ein sehr einfachen Code entscheiden, ob es korrekt berechnet. Oder überhaupt anhält oder unendlich weiterechnet.
Ganz davon zu schweigen Code zu erstellen für eine bestimmte Problemstellung.
Ganz ehrlich: Können das Menschen? Warum schreiben wir Unit-Tests? Warum gibt es Abnahmetests? Warum gibt es dennoch Bugs?
 
  • Gefällt mir
Reaktionen: TomH22
LencoX2 schrieb:
Stellst du diese Aussage wirklich in Frage, weil meine Hinterlegung mit dem Halteproblem aber doch entscheidbar, aber nur ein bisschen, sei?

Ich sehe das eher als Bestätigung meiner Aussage:
Da eine allgemeine Lösung nicht existiert, baut man so viel Logik ( =KI), bis es so aussieht, als wenn es irgendwie ja doch geht.
Das hat einfach nichts mit KI zu tun. Erklär sonst bitte die praktische Relevanz des Halteproblems für KI im Gegensatz zur Relevanz des Halteproblems für jegliche andere Software oder bisherige KI. Es ist auch unklar was "da eine allgemeine Lösung nicht existiert" heißen soll, eine allgemeine Lösung - wofür? - niemand versucht hier Probleme zu lösen, bei denen das Halteproblem akut relevant ist.

Du hast hier ein Thema eingebracht, mit dem du offensichtlich nicht gut vertraut bist oder über das du erst jüngst gelernt hast und noch im "Verarbeitungsprozess" der ganzen Informationen bist, was auch überhaupt nichts schlimmes ist, jeder der kontinuierlich lernt hat die ganze Zeit solche Themen, bei denen das so ist. Man sollte dann aber nicht krampfhaft versuchen, Dingen zusammen zu bringen, nur um Recht zu behalten.
 
  • Gefällt mir
Reaktionen: TomH22 und tollertyp
BeBur schrieb:
Erklär sonst bitte die praktische Relevanz des Halteproblems für KI im Gegensatz zur Relevanz des Halteproblems für jegliche andere Software oder bisherige KI. Es ist auch unklar was "da eine allgemeine Lösung nicht existiert"
Es geht um die praktische Relevanz für diesen Thread. Siehe Titel!
Ich sage ja klar: Ja es lohnt sich absolut Programmiersprachen zu lernen.

Grund:
Weil kein Automat für übliche
Problemstellungen der IT formal korrekte, terminierende Algorithmen berechnen kann. Das haben sehr intelligente Menschen vor Jahrzehnten formal bewiesen.

Daraus folgt, dass es auch in Zukunft Menschen machen werden.

Ergo lohnt es sich Programmieren zu lernen.

Auf deine Aussagen zu meinem Wissens Background gehe ich nicht ein. Ich finde den Stil nicht gut.
 
Ich glaube, dass es sich (noch) lohnt, da sind wir uns alle einig.
Wobei es besser ist Konzepte zu lernen, auch das wurde schon gesagt.

Weil kein Automat für übliche
Problemstellungen der IT formal korrekte, terminierende Algorithmen berechnen kann
Ehrlich gesagt: Was willst du uns damit sagen?
Vorschlag: Gib doch mal Quellen zu den Beweisen, damit man auch diskutieren kann oder verstehen kann, welchen Bezug das konkret mit der Ausgangsfrage hat. Warum? Weil ich das Gefühl habe, dass wir nicht über das gleiche Thema diskutieren.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: BeBur
Zurück
Oben