Meint ihr echt, dass KI den Job des Programmierers mittelfristig obsolet macht? Bei Versicherungen wird immer noch COBOL benutzt, die Flugsicherung läuft auf 386ern. Was ich damit sagen will: Abseits des Bleeding Edge sehe ich nicht, dass Umgebungen sich so schnell umstellen.
Was ich mich aber tatsächlich gefragt habe, ob der Code von KIs tatsächlich noch von Menschen verstehbar ist. Was macht man denn, wenn eine Schulklasse die Kartonagefabrik besucht und dort ein Schneidroboter einen Karton aus der kleinen Annabell rausschneidet? Was macht man, wenn kein Mensch mehr den Code begreift (bzw. begreifen kann)?
Der IT-Thread
-
#1801 Stinkachu 1 Nov. 2022, 06:49 -
-
Mod/RDW
-
#1804 Karl Klammer 1 Nov. 2022, 08:56So lala. Mein Verkaufsbot macht ned so ganz was ich will bezüglich aus ifelse wieder rauskommen
Kann man ned einfach if diesdas dann springe zu Zeile xy machen -
Mod/RDW
#1805 Sylvester 1 Nov. 2022, 09:16Zitat von: Qu4rkey
So lala. Mein Verkaufsbot macht ned so ganz was ich will bezüglich aus ifelse wieder rauskommenDu meinst sowas wie ein
Kann man ned einfach if diesdas dann springe zu Zeile xy machenGOTO. Ist leider in Python nicht implementiert. (Zum Glück)
Aber wenn du dein Programm nicht postest, kann dir auch keiner helfen. -
-
#1807 RichterinWinkelmann 1 Nov. 2022, 09:25One can also use exceptions to provide a “structured goto” that works even across function calls. Many feel that exceptions can conveniently emulate all reasonable uses of the “go” or “goto” constructs of C, Fortran, and other languages. For example
class label(Exception): pass # declare a label try: ... if condition: raise label() # goto label ... except label: # where to goto pass ...
This doesn’t allow you to jump into the middle of a loop, but that’s usually considered an abuse of goto anyway. Use sparingly. -
#1808 pump3 1 Nov. 2022, 09:38Zitat von: Stinkachu
Meint ihr echt, dass KI den Job des Programmierers mittelfristig obsolet macht? Bei Versicherungen wird immer noch COBOL benutzt, die Flugsicherung läuft auf 386ern. Was ich damit sagen will: Abseits des Bleeding Edge sehe ich nicht, dass Umgebungen sich so schnell umstellen.Code versteht man jetzt schon nicht mehr. Es sei denn man arbeitet sich intensiv rein. Und Assembler den Compiler produzieren ist noch unverständlicher.
Was ich mich aber tatsächlich gefragt habe, ob der Code von KIs tatsächlich noch von Menschen verstehbar ist. Was macht man denn, wenn eine Schulklasse die Kartonagefabrik besucht und dort ein Schneidroboter einen Karton aus der kleinen Annabell rausschneidet? Was macht man, wenn kein Mensch mehr den Code begreift (bzw. begreifen kann)?
Das ist normal. Genausowenig wie andere Technologien.
Das war schon immer so. Seitdem die Waffenschmiede von Assurbanipal II. den ulder-bedäss dreifach-gefiederten Pfeil erfunden haben, haben sich Menschen gefragt ob die Wissenschaft jetzt zu weit gegangen ist.
Alles Blabla.
Bei Robotern hat man das Problem nicht, die müssen alle in ihren Käfigen sitzen zu denen kein Mensch Zugang hat.
Zitat von: Qu4rkeySo lala. Mein Verkaufsbot macht ned so ganz was ich will bezüglich aus ifelse wieder rauskommenDefinier doch funktionen die das machen was du brauchst und rufe dann die Funktion auf.
Kann man ned einfach if diesdas dann springe zu Zeile xy machen
Bsp:
Python:def myAdder(a, b): return a+b bla bla bla print("Das resultat ist:") print(str(myAdder(zahl1, zahl2))) bla bla -
Mod/RDW
#1809 Sylvester 1 Nov. 2022, 11:50Ja gut, Kwarki hat für Python wohl nicht die Stärke, die es braucht. Dann frag ich was. Ich will mit PySide6, QML und Python eine Applikation bauen, jedoch funktioniert das Scheiß Property-Binding wohl nicht so wie ich mir das vorstelle. In C++ habe ich sowas schon mal gemacht, da hat es geklappt.
Er speichert so einen Mist im Ini-File:
INI:[personal] first_name=@Invalid() last_name=@Invalid() street=@Invalid() postal_code=@Invalid() location=@Invalid()
Spoiler: AppWindow.qml
CSS:import QtQuick.Controls import QtQuick.Layouts import QtQuick import com.example.app 1.0 Window { id: settingsDialog visible: true width: 400 height: 200 Settings { id: settings } GridLayout { columns: 2 anchors.fill: parent Text { text: qsTr("Vorname") } TextField { id: first_name text: settings.first_name } Text { text: qsTr("Nachname") } TextField { id: last_name text: settings.last_name } Text { text: qsTr("Straße u. Nr.") } TextField { id: street text: settings.street } Text { text: qsTr("Postleitzahl") } TextField { id: postal_code text: settings.postal_code } Text { text: qsTr("Ort") } TextField { id: location text: settings.location } Button { text: "Laden" onClicked: { console.log("Laden...") settings.load() } } Button { text: "Speichern" onClicked: { console.log("Speichern...") settings.save() } } } Component.onCompleted: { console.log("I'm loaded.") settings.load() } }
Spoiler: Settings.py
Python:# To be used on the @QmlElement decorator # (QML_IMPORT_MINOR_VERSION is optional) QML_IMPORT_NAME = "com.example.app" QML_IMPORT_MAJOR_VERSION = 1 from PySide6.QtCore import QObject, Signal, Slot, Property, QSettings from PySide6.QtQml import QmlElement @QmlElement class Settings(QObject): def __init__(self, parent=None): super().__init__(parent) self.__first_name = None self.__last_name = None self.__street = None self.__postal_code = None self.__location = None @Slot() def load(self): self.__settings = QSettings('settingsdialog.ini', QSettings.IniFormat) self.first_name = self.__settings.value('personal/first_name') self.last_name = self.__settings.value('personal/last_name') self.street = self.__settings.value('personal/street') self.postal_code = self.__settings.value('personal/postal_code') @Slot() def save(self): self.__settings.setValue('personal/first_name', self.__first_name) self.__settings.setValue('personal/last_name', self.__last_name) self.__settings.setValue('personal/street', self.__street) self.__settings.setValue('personal/postal_code', self.__postal_code) self.__settings.setValue('personal/location', self.__location) def get_first_name(self): return self.__first_name def set_first_name(self, name): if self.__first_name != name: self.__first_name = name self.first_name_changed.emit(name) first_name_changed = Signal(str) def get_last_name(self): return self.__last_name def set_last_name(self, name): if self.__last_name != name: self.__last_name = name self.last_name_changed.emit(name) last_name_changed = Signal(str) def get_street(self): return self.__street def set_street(self, street): if self.__street != street: self.__street = street self.street_changed.emit(street) street_changed = Signal(str) def get_postal_code(self): return self.__postal_code def set_postal_code(self, code): if self.__postal_code != code: self.__postal_code = code self.postal_code_changed.emit(code) postal_code_changed = Signal(str) def get_location(self): return self.__location def set_location(self, loc): if self.__location != loc: self.__location = loc self.location_changed.emit(loc) location_changed = Signal(str) first_name = Property(str, fget=get_first_name, fset=set_first_name, notify=first_name_changed) last_name = Property(str, fget=get_last_name, fset=set_last_name, notify=last_name_changed) street = Property(str, fget=get_street, fset=set_street, notify=street_changed) postal_code = Property(str, fget=get_postal_code, fset=set_postal_code, notify=postal_code_changed) location = Property(str, fget=get_location, fset=set_location, notify=location_changed)
Spoiler: Main.py
Python:import sys from PySide6.QtCore import QUrl from PySide6.QtGui import QGuiApplication from PySide6.QtQml import QQmlApplicationEngine, qmlRegisterType from Settings import Settings if __name__ == '__main__': app = QGuiApplication(sys.argv) qmlRegisterType(Settings, "com.example.app", 1,0, "Settings") engine = QQmlApplicationEngine(QUrl("AppWindow.qml")) app.exec() -
Mod/RDW
-
#1811 RichterinWinkelmann 1 Nov. 2022, 11:57Qt ins Glas hinein.
Ich wette es hat irgendwo Probleme von diesem qStr zu konvertieren.
E: Lel, mein Handy hat aus Glas Gulag gemacht. Da sitzt die Überzeugung wohl tief. -
Mod/RDW
-
Mod/RDW
#1813 Sylvester 1 Nov. 2022, 12:07Zitat von: RichterinWinkelmann
Qt ins Gulag hinein.Das qStr ist nur für die Labels. Das ist gar nicht involviert. Qt und die Widgets ist schon knorke, aber dieses QML-Gedöns ist leider teilweise der pure Krebs. Ich sehe leider derzeit nix besseres und die Widgets werden auch nicht weiterentwickelt, und bei mir gibt es teilweise schon Darstellungsfehler auf dem Desktop mit den Widgets.
Ich wette es hat irgendwo Probleme von diesem qStr zu konvertieren.
Zitat von: RichterinWinkelmannE: Lel, mein Handy hat aus Glas Gulag gemacht. Da sitzt die Überzeugung wohl tief.Lol, das war nicht dein Handy. -
Mod/RDW
#1814 BigBANG 1 Nov. 2022, 12:20Zitat von: Hexley
Ich sehe leider derzeit nix besseres und die Widgets werden auch nicht weiterentwickelt, und bei mir gibt es teilweise schon Darstellungsfehler auf dem Desktop mit den Widgets.Darf ich die Frage nach dem Warum stellen?
Wenn was nicht mehr weiterentwickelt wird, würde ich es auch nicht mehr benutzen. -
Mod/RDW
#1815 Sylvester 1 Nov. 2022, 12:23Zitat von: BigBANG
Darf ich die Frage nach dem Warum stellen?QML/QtQuick wird schon weiterentwickelt. Das oben ist ein QML-Beispiel.
Wenn was nicht mehr weiterentwickelt wird, würde ich es auch nicht mehr benutzen. -
#1816 Karl Klammer 1 Nov. 2022, 12:25Zitat von: Hexley
Ja gut, Kwarki hat für Python wohl nicht die Stärke, die es braucht.Hab ne Lösung gefunden. Beim verschachteln darauf achten, immer mit so vielen else wieder nauszugehen, wie man mit ifs neigeht. Daran hats gelegen, dass es je nach input nicht weiter gehen wollte. Dieser Beitrag wurde von Karl Klammer am 01.11.2022 12:33:27 bearbeitet. -
#1817 Katzus Belli 1 Nov. 2022, 12:27Zitat von: BigBANG
Wie geht ihr damit um, dass euer ganzes IT-Wissen in 10-20 Jahren komplett von AI ersetzt wird, die jede Software besser schreibt, als man es per Hand je könnte?
Frage ist ernst gemeint, mich belastet das ein wenig.
-
#1818 RichterinWinkelmann 1 Nov. 2022, 12:38Zitat von: Qu4rkey
Hab ne Lösung gefunden. Beim verschachteln darauf achten, immer mit so vielen else wieder nauszugehen, wie man mit ifs neigeht. Daran hats gelegen, dass es je nach input nicht weiter gehen wollte.Warum Compiler 1 gute Sache sind, Level Otten. -
Mod/RDW
#1819 BigBANG 1 Nov. 2022, 13:26Zitat von: Qu4rkey
Hab ne Lösung gefunden. Beim verschachteln darauf achten, immer mit so vielen else wieder nauszugehen, wie man mit ifs neigeht. Daran hats gelegen, dass es je nach input nicht weiter gehen wollte.Keine Ahnung, ob das für dein Problem relevant ist, aber ich würde sowas:
C#:if (a == 1) { if (b == 1) { if (c == 1) { penis(); } } }
Immer ersetzen mit:
Code:if (a != 1) return; if (b != 1) return; if (c != 1) return; penis();
Einrückungen wenn möglich immer vermeiden. -
#1820 pump3 1 Nov. 2022, 13:33Zitat von: RichterinWinkelmann
Qt ins Gulag hinein.Qt ist super.
Ich wette es hat irgendwo Probleme von diesem qStr zu konvertieren.
E: Lel, mein Handy hat aus Glas Gulag gemacht. Da sitzt die Überzeugung wohl tief.
Das neumodische QML zeugs vermutlich weniger, aber widgets und die ganzen Datenklassen, netzwerk , MVC etc... eigentlich richtig nais.


