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



  • @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