Zu den Trends, die Sie erwähnen, möchte ich noch einen hinzufügen, der IMHO sie erklärt:
Es gibt weitaus mehr Programmierer (benötigt) als jemals zuvor.
Die Anzahl der Aufgaben, die eine Programmierung erfordern oder einschließen, nimmt ständig zu und ist sogar noch höher als die Anzahl der Programmierer. Heutzutage gibt es mehrere Mikrochips in einem durchschnittlichen Auto. In 5 Jahren befindet sich möglicherweise ein Chip in Ihrem Kühlschrank und Ihrem Toaster. In 10 Jahren Ihre Unterwäsche? ... Und jemand muss all diese Software produzieren, damit diese funktionieren. Es werden also alle möglichen Anstrengungen unternommen, um das Automatisierbare zu automatisieren und die "Produktivität" (wie auch immer definiert) zu verbessern. Und immer mehr neue Köpfe werden rekrutiert.
Dies impliziert, dass die Mehrheit der aktiven Programmierer von heute unerfahren und / oder schlecht auf ihre Arbeit vorbereitet ist. Es dauert mehrere Jahre, um ein angemessenes Erfahrungsniveau zu erreichen, und es erfordert ständiges Lernen, um sich dort zu halten. Unter dem Strich werden immer mehr Programmieraufgaben immer weniger anspruchsvoll. Aber es gibt immer noch genug Herausforderungen für jeden, der sie sucht .
Lassen Sie mich den Anwalt des Teufels gegen Ihre obigen Punkte spielen:
Keine Zeit für die Implementierung von Best Practices
Viele Leute tun es nicht, viele Leute tun es. Als ich vor zehn Jahren zum ersten Mal Unit Testing und den agilen Ansatz entdeckte, hatte keiner meiner Kollegen die geringste Ahnung, was es war. Heutzutage ist es fast Standardmaterial an Universitäten, so dass es viele junge Absolventen bereits verstehen.
So oft wie möglich den Personencode anderer verwenden (benutzerdefinierter Code als Verbindlichkeit)
Im Gegensatz zu was? Das Rad neu erfinden? Oder den Code anderer Leute verwenden, um das zu vermeiden?
Ich denke, es ist wichtig zu wissen , dass wir (meistens) dafür bezahlt werden, Probleme zu lösen, und das Schreiben von Code ist nicht das Ziel, sondern nur das Mittel dazu . Wenn ein Problem gelöst werden kann, ohne eine einzige Codezeile zu schreiben, macht es den Kunden trotzdem glücklich. Vor allem, wenn es uns so gelingt, eine zuverlässigere Lösung schneller und kostengünstiger herzustellen. Ich sehe kein Problem damit.
Verwendung von immer höheren Sprachen zur Verbesserung der Produktivität
Im Gegensatz zur Codierung alles in der Montage? ;-)
GUI-basierte "Entwicklungstools", die das "Programmieren" erheblich vereinfachen und es nicht erforderlich machen, dass die Benutzer die Hintergründe des Codes verstehen
IMHO kann jedes Werkzeug missbraucht werden. Das heißt nicht, dass GUI-Builder notwendigerweise perfekt oder sogar gut waren - die meisten (oder zumindest einige) von ihnen sind innerhalb ihrer Grenzen verwendbar. Aber wenn jemand diese Grenzen nicht kennt, ist es ein Problem des Werkzeugs oder seines Benutzers?
Im Allgemeinen glaube ich (obwohl ich keine Beweise dafür habe), dass in den Tagen der Lochkarte und des Maschinencodes ungefähr derselbe Anteil des vorhandenen Codes schrecklich war wie jetzt, nur beides
- die Gesamtmenge des Codes und
- die Wahrscheinlichkeit, dass Außenstehende jemals einen solchen Code sehen
war viel viel weniger.
Mit dem Internet und dem Daily WTF sind wir nun Tag für Tag den schlimmsten Beispielen ausgesetzt. Es ist ein bisschen so, als würde man alle Nachrichten über Terrorismus und Erdbeben sehen und sich von Promis scheiden lassen, und schreien, wie gefährlich und unmoralisch diese Welt geworden ist.