Ständig wachsende Komplexität im Programmiereralltag (Fork aus: Datenbank für C)


  • Mod

    Topic geforked, da nicht zum Ursprungsthema passend.


  • Mod

    @RudiMBM sagte in Ständig wachsende Komplexität im Programmiereralltag (Fork aus: Datenbank für C):

    @SeppJ Zu Deinem letzten Satz: 1960 wäre diese Denkungsweise möglich. Aber versuche Dir vorzustellen, wie denkst Du 2040 über die Entwicklung im deinem Lebenslauf nach, sofern dich Corona nicht vorher erwischt. Ich habe das Glück die Entwicklung über 50 Jahre zu überblicken. Wenn Du 50 Jahre zurückblicks, werden das viel mehr Erinnerungen sein. Wie war das Moorsche Gesetz?

    Die Beschränkung ist gegeben durch die menschliche Leistungsfähigkeit. Oder willst du sagen, dass man sich 1960 nicht genauso anstrengen musste wie heute? Damals mag Komplexität und Vernetztheit geringer gewesen sein, aber das hieß doch auch, dass man vieles selber erfinden musste, wofür man heute zu Stackoverflow (oder in dieses Forum) geht.

    Umgekehrt sind die komplexesten Anwendungen heute dadurch beschränkt, welches Maß an Komplexität man bei der Erstellung noch managen kann (was halt immer mehr wird, weil man immer bessere Werkzeuge für die Organisation hat). Das kann und wird sicherlich irgendwann einmal in Transhumanismus enden, aber das ist ja nicht unbedingt schlecht. Und für die, die darum besorgt sind, ist das sicher noch recht weit weg.

    PS: Was mir noch einfällt ist, dass das MINT-Feld heute einen sehr viel größeren und wichtigeren Teil der Gesellschaft ausmacht. Das schafft mehr Konkurrenz, und es kann sein, dass man dadurch tatsächlich einen viel größeren Leistungsdruck hat als 1960, als man sowohl weniger direkte Konkurrenz hatte. Die Außendarstellung ist heute auch schwieriger, weil ein Laie tendenziell besser beurteilen kann, ob was man macht gut ist oder nicht, weil jeder in der Gesellschaft mehr Alltagserfahrung mit Software hat.



  • @SeppJ Ich hab wirklich nichts gegen den technologischen Fortschritt. Ich hab ja selbst die ganzen Jahre kräftig mit angeschoben. Im Rückblick aber hab ich ein schlechtes Gewissen. Und es geht immer schneller - Immer mehr Entwickler mit immer mehr und bessern Tools schieben an. Ich will es doch nicht aufhalten. Es ist wie mit Corona, die Kurve muss abgeflacht werden!
    Wenn ich zB. MySql wirklich beherrschen will, muß ich die 4830 Seiten des 5.7er Reference Manual begreifen. Und noch ein paar andere Dokumente. Die Funktionen der Workbench nicht zu vergessen. Bis dahin gibt es schon wieder ne neue Version. Wartet doch einfach bis die letzte Mahlzeit verdaut ist, oder besser, bis der Hunger wiederkommt.
    PS: MySql Version ist nun 8.0 19
    PS: Von den 4830 Seiten hab ich die wenigsten gelesen, nur gesucht was ich brauchte. Aber für sehr Professionell halt ich das nicht, der nächste BlueScreen ist damit vorprogrammiert. Und warum? Weil's wieder mal schnell gehen sollte.


  • Mod

    Ich habe den Eindruck, dass katastrophale Fehler in Software (d.h. das Programm muss abgebrochen werden, oder schlimmer noch, es reißt andere Programme mit) heute sehr viel seltener vorkommen, als früher. Wann hast du das letzte Mal einen Bluescreen gesehen?



  • @RudiMBM

    Aber für sehr Professionell halt ich das nicht, der nächste BlueScreen ist damit vorprogrammiert.

    Ein Bluescreen, weil ein Datenbankclient einen Fehler enthält? Das war wohl vor NT 4.0.



  • @SeppJ Geschätzt 3 mal die Woche kommt "Programm funktioniert nicht mehr" bei mir. (Nicht bei selbstprogrammierten, sondern bei gekauften.) Das neue Magix reagiert sehr oft nur nachdem ich ein Menü anklicke ohne was auszuwählen. Und der C++Builder stürzt komplett ab, wenn ich den Debugger abbreche (roter Button oder den Testlauf durch Sys-Menue beende) und im Testprogramm vorher eine Dateiauswahl ausgeführt habe. An den Testprogrammen liegt es nicht, denn ohne Debugger läufts prima.
    PS: Hallo, nehmt BlueScreen bitte nicht so genau. Ich ärgere mich schon genug, wenn's einfach nicht weitergeht.



  • @RudiMBM Das passiert mir ungefähr 3 mal täglich auf der Arbeit bei meinem Windows Rechner. Auf meinem privaten Linux Rechner ist mir das noch nie passiert.
    Aber liegt bestimmt an mir ...

    Glaube nicht, dass es an der Software selbst liegt.



  • @Leon0402 Gute Software sollte alle Bedienungfehler abfangen, aber dann proggt man doppelt so lang. Soll sich doch der User anstrengen. Wenn es an Dir liegt, dann weil Du die Falltüren nicht kennst. Üb mal mit Minesweeper.



  • Das mit der Komplexität ist auch so eine Sache... Vieles verändert sich, wird aber nicht direkt "komplexer". Ich programmiere seit über 20 Jahren, es hat sich sehr vieles verändert, mit vielen neueren Entwicklungen kann ich selber nichts mehr anfangen. Aber ich habe subjektiv nicht das Gefühl, dass die Arbeit wirklich komplexer oder schwieriger geworden wäre. Vieles ist anders geworden.
    Es gibt z.B. sehr viele Frameworks, Libraries, Tools, Abhängigkeiten usw... Das führt aber eher dazu, dass man sich damit eben schlechter auskennt, aber trotzdem schnell vorankommt. Oder sich ganz schnell soweit einarbeiten kann, dass man es benutzen kann. Früher musste ich beim Programmieren mehr beachten und mehr gleichzeitig im Kopf behalten, weil ich vieles eben manuell programmieren musste, C++ (und andere Programmiersprachen) noch komplizierter und fehleranfälliger war usw. Wenn man Assembler programmiert, ist es z.B. noch komplizierter, weil man sich solche Sachen wie Registerbelegungen merken muss.
    Die Komplexität entwickelt sich also weiter, es wird aber gleichzeitig auch einfacher und zugänglicher.

    Du musst z.B. auch keine 4000 Seite über MySql lesen, um damit arbeiten zu können. Die Grundlagen vieler Datenbanken sind gleich, viele Konzepte hat man schon gehört. Du brauchst auch bei weitem nicht alles, sondern nur einen kleinen Bruchteil der Funktionalität. Und auch die Menge macht es noch nicht komplexer. Sagen wir, du hast gelesen, dass MySql irgendwelche XML Funktionen hat. Hast es zur Kenntnis genommen und es interessiert dich einfach nicht. Und wenn du doch in die Situation kommst, dass du das brauchst, dann weißt du entweder, dass es da was gab, oder es ist eh so naheliegend, dass man schnell danach googeln kann, und dann liest man sich erst durch, was es da für Funktionen gibt.
    Und wenn man sich halbwegs mit einer Datenbank auskennt, kommt man auch schnell mit den meisten anderen zurecht. Außerdem ist die Doku viel besser und es ist einfach viel mehr Wissen vorhanden, wie SeppJ geschrieben hat.

    Genauso ist es in den meisten anderen Bereichen.



  • @RudiMBM sagte in Ständig wachsende Komplexität im Programmiereralltag (Fork aus: Datenbank für C):

    Gute Software sollte alle Bedienungfehler abfangen

    Und DAS ist die andere Seite der Komplexität 😉 Mit sowas haben wir bei unserer Software auch jahrelang gekämpft, bis die mal deutlich stabiler geworden ist. Ich meine nicht Bedienungsfehler, sondern Fehler allgemein. Unsere Software ist sehr umfangreich und sehr komplex geworden, und so wahnsinnig viele Entwickler und Tester haben wir auch nicht. Und wenn man mit sehr vielen unterschiedlichen Daten umgehen muss, zu einem großen Teil aus Fremdsystemen, mit Multithreading usw., dann ist es teilweise verdammt schwer, alle Fehler zu finden.
    Und ja, das kann man als Nachteil der gewachsenen Komplexität sehen. Aber was will man da machen? Das sind eben Kundenanforderungen, und wir haben eben viele verschiedene Kunden. Wenn wir das alles nicht abdecken würden, dann wär die Software ja auch nutzlos.



  • Und es geht nicht nur uns so: https://youtu.be/Iht8GZncIh0?t=7



  • @RudiMBM Ich wollte eig. darauf hinaus, dass meiner Meinung nach Windows das Problem ist und verantwortlich für das "Programm reagiert nicht mehr" ist. In 5 Jahren ist mir das nicht einmal passiert auf Linux ... bei Windows passiert das ungefähr 1 mal am Tag.
    Und die Probleme von Windows sind meiner Meinung nach auch nicht auf die wachsende Software Komplexität zurückzuführen.

    Was die eigentliche Fragestellung angeht. Die Komplexität wächst und gleichzeitig die Zugänglichkeit an Informationen und Dokumentationen etc. ... daher hat sich meiner Meinung nach im Endeffekt nichts geändert zu früher.
    Mir ist das lieb, ich habe lieber diese Komplexität, aber dafür die Chance mich in alles einzuarbeiten ... dadurch hat meiner Meinung nach jeder die Chance sich mit dem Thema auseinanderzusetzen.
    Anders sieht das z.B. im Bereich Elektronik, Handwerk aus ... wenn man niemanden aus der Familie / Freundeskreis hat, der das kann, dann wird's schwieriger (jedenfalls schwieriger als mit Software 😉

    Und das macht doch irgendwie auch den Reiz aus ... das sich alles weiterentwickelt und man immer neue Sachen zum lernen hat 🙂 Das verspricht doch einen abwechslungsreichen Job.



  • @Leon0402 sagte in Ständig wachsende Komplexität im Programmiereralltag (Fork aus: Datenbank für C):

    Das verspricht doch einen abwechslungsreichen Job.

    Naja, das hält sich leider auch sehr in Grenzen. Nachdem man die Konzepte verstanden hat, ist das meiste auch nur das gleiche in grün. Mir fällt es mittlerweile sehr viel schwerer als früher, mich für etwas "neues" zu begeistern. Und einen Job zu finden, bei dem es etwas spannendes zu tun gibt, ist nochmal eine andere Herausforderung.



  • @Leon0402 sagte in

    wenn man niemanden aus der Familie / Freundeskreis hat, der

    Das ist ein ganz anderes Thema. Jeder der eine fundierte Berufserfahrung hat, findet das leicht was er kann. Ein Bäcker würde das gleiche über dich sagen.

    dadurch hat meiner Meinung nach jeder die Chance sich mit dem Thema auseinanderzusetzen.

    Ja, das ist das was auch ich immer an meiner Tätigkeit geliebt habe. Wenn ich kleine Aufgaben deligieren wollte, kam oft die Antwort: das kann ich nicht. Also musste ich es selbst machen, obwohl ich zu diesem Zeitpunkt auch nicht wusste wie es geht. Anderen hab ich geholfen, und ich hab mich gewundert, wo wohl die Schwierigkeiten wären. Aber als es schwieriger wurde kamen meine Kollegen immer öfter, mich zu fragen wie dies oder jenes geht. Ich kam kaum mehr zu meinen eigenen Aufgaben. Ich hab dann gestreikt. Ich begann die Fragen so zu beantworten: "Da im Regal 2. Reihe 3.Ordner, so in der Mitte steht die Antwort." Und was war die Folge: Die haben nicht gelesen - die haben begonnen mich zu hassen - die haben mich nach oben hin verpetzt.
    Ich glaube, die Leute hier im Forum sind motiviert und interssiert. Die nur für Geld arbeitete Mehrheit scheitert an der Komplexität, die machen das nicht für Fun. Deshab kommt soviel Murx raus. Aber das gilt wohl für alle Berufe. Nicht jeder Bäcker macht gute Brötchen.



  • @Mechanics

    Und einen Job zu finden, bei dem es etwas spannendes zu tun gibt

    Ich bin schon immer abgehauen, wenn es nicht mehr Interessant war. Im nächsten Job hab ich mir es selbst interessant gemacht. Ich hab auch schon mal einen Boss "Sklaventreiber" genannt.... 2 Monate bezahlen Sonderurlaub. Leider, als ich 50 war, hatte ich den besten Job meines Lebens, aber die Firma machte dicht, und damit mein Projekt, nachdem ich mit 20 Mann 5 Jahre dran war. Und da war Schluss. Aber nun, man kann alles lernen, ernährte ich mich 20Jahre lang freiberuflich als Glasbläser (da war ich wahrlich nicht der Beste, es war aber trotzdem spannend, wenn auch nicht sooo komplex) bis zur Rente. Proggen ist jetzt nur noch mein Hobby. Mit 3 Computern und 4 Bildschirmen...Ich kann es nicht lassen.



  • Ich glaube das ist aber in vielen Berufen so. Selbst der Bäcker bäckt heute nicht mehr wie vor 100 Jahren. Die Technik ist nun leider oft mitbestimmend für Erfolg. Ich bin beruflich Zerspanungsmechaniker (das hat man früher einfach Dreher oder Fräser genannt) und programmiere nur als Hobby. Auch dort arbeitet man nicht mehr so wie vor 20 oder 30 Jahren. Die CNC Technik beherrscht das Berufsfeld. Konventionell drehen oder fräsen wie früher muss keiner mehr können. Das gewisse Feeling über korrekte Schnittwerte und die Hand an den Handrädern entfällt. Man muss sich auf Zahlen und Daten verlassen. Ich selbst bin noch jung und konnte die Erfahrung nur noch ein Stück weit machen. Aber nun ertappe ich mich selbst wie ich versuche alles noch schöner schneller und besser zu machen. Damit treibe ich auch in meiner Firma die Komplexität voran. Ich versuche bei CNC-Programmen die Erfahrungen von C++ mit einspielen zu lassen. Und ehe man sich versieht baut man auf Arbeit seine eigenen Zyklen die der Bearbeitung entsprechen die man in der Firma eben braucht. Ich versuche Programme sinnvoll zu strukturieren und wie in C++ mich nicht damit zufrieden zugeben, dass etwas funktioniert, sondern immer zu verbessern wie gut es funktioniert. Ich denke es ist einfach der Ansporn und die Motivation der Leute die mit etwas arbeiten die Entwicklung voran zu treiben. Und diese Motivation lässt mit steigendem Alter einfach nach. Während ich mich darüber freue auf Arbeit etwas sinnvoll optimiert oder programmiert zu haben schütteln die älteren Kollegen den Kopf warum etwas nicht so bleiben kann wie es die letzten 20 Jahre war. Und natürlich könnte ich einfach dem Trott folgen, aber der Anreiz nur eine Hand voll Parameter ändern zu müssen um völlig andere Bauteile zu fertigen, ist einfach zu groß. Und der Bäckerlehrling spielt auch mit dem Gedanke sein eigenes Brot zu kreieren was besser schmeckt als jedes gewöhnliche, auch wenn es dafür fünf Zutaten mehr braucht. Ich denke es liegt einfach in der Natur des Menschen (besonders bei jungen) sich weiterzuentwickeln. Und gerade in der Software-Branche explodiert das ganze so schnell, weil eben kaum Grenzen gesetzt sind. Man kann aus jeder Idee die man im Kopf hat mit bestimmten Logiken das basteln was man möchte und das egal in welchem Einsatzgebiet. Solange es die Grenzen der Hardware nicht überschreitet ist nahezu alles möglich. Während der Maurer an die physikalischen Gesetze gebunden ist und der Bäckerslehrling sein Brot nicht backen darf weil die extra Zutaten mehr Geld kosten und die Arbeitszeit an jedem Brot steigt, schreibt der Programmierer seine eigenen Gesetze und Logiken da tippen an sich nichts kostet. Neue Ideen sind einfach schneller umsetzbar als in anderen Branchen.



  • @Zhavok sagte in Ständig wachsende Komplexität im Programmiereralltag (Fork aus: Datenbank für C):

    Während der Maurer an die physikalischen Gesetze gebunden ist und der Bäckerslehrling sein Brot nicht backen darf weil die extra Zutaten mehr Geld kosten und die Arbeitszeit an jedem Brot steigt, schreibt der Programmierer seine eigenen Gesetze und Logiken da tippen an sich nichts kostet. Neue Ideen sind einfach schneller umsetzbar als in anderen Branchen.

    Naja, an die Grenzen der Physik und vor allem der Mathematik sind wir auch gebunden. Und das macht schon ordentliche Einschnitte. Insbesondere Optimierungsprobleme liegen ja z.B. oft in NP, da hätte man ja schon gerne bessere Lösungen, die wird es aber vermutlich nicht geben.
    Und auch der Softwareentwickler darf im Job nicht alles programmieren, wozu er grade Lust hat, da zum einen Arbbeitszeit teuer ist und auch nicht alle Tools umsonst zu haben sind.

    Aber es ist schon ein schwieriger Grat, Komplexität händelbar zu halten, aber das raus zu holen, was machbar ist.

    Wenn man sich nur mal die Tools anschaut, die man so verwendet: Man hat sein Unittest Framework, ein Versionierungssystem, ein Ticketsystem, eine Buildautomatisierung, vlt auch noch ein Container System usw. All das erhöht auf der einen Seite die Komplexität der Entwicklung, nimmt einem auf der anderen Seite aber viel manuelle, fehleranfällige Arbeit ab.


Log in to reply