Ich mache schon lange Webprogrammierung und irgendwo habe ich den Überblick verloren, warum wir das tun, was wir heute tun (oder wie wir dazu gekommen sind, Dinge auf diese Weise zu tun)?
Ich habe mit der grundlegenden ASP-Webentwicklung begonnen, und schon sehr früh waren Anzeige und Geschäftslogik auf der Seite gemischt. Die clientseitige Entwicklung war sehr unterschiedlich (VBScript, verschiedene JavaScript-Varianten), und wir hatten viele Warnungen vor serverseitigen Überprüfungen (und deshalb habe ich mich von der clientseitigen Logik ferngehalten).
Ich bin dann für eine Weile zu ColdFusion gewechselt. ColdFusion war wahrscheinlich das erste Webentwicklungsframework, das Anzeige und Geschäftslogik mithilfe ihrer Tags trennte. Es schien mir sehr klar, aber sehr ausführlich zu sein, und ColdFusion war auf dem Markt nicht sehr gefragt, und so ging ich weiter.
Ich bin dann auf den ASP.NET-Bandwagen gesprungen und habe angefangen, ihren MVC-Ansatz zu verwenden. Ich erkannte auch, dass Java eine Elfenbeinturmsprache für Unternehmenssysteme zu sein schien, und versuchte auch deren MVC-Ansatz. Später entwickelte ASP.NET dieses MVVM-Entwurfsmuster, und auch Java (genauer gesagt J2EE oder JEE) kämpfte mit seinen MVC2-Ansätzen.
Heute habe ich jedoch festgestellt, dass die Aufregung und der Fortschritt beim Backend-Programmieren nicht mehr bestehen. Außerdem scheinen serverseitige MVC-Praktiken veraltet zu sein (verwenden die Leute JSTL wirklich mehr?). In den meisten Projekten, an denen ich arbeite, habe ich heute festgestellt, dass in JavaScript-Frameworks und clientseitigen Entwicklungen all die aufregenden und innovativen Fortschritte erzielt werden.
Warum wurde diese Verlagerung von der Server- zur clientseitigen Entwicklung durchgeführt? Ich habe eine einfache Zeilenzählung für eines meiner JEE-Projekte durchgeführt, und in JavaScript sind mehr Codezeilen als in Java (ausgenommen Bibliotheken von Drittanbietern). Ich finde, dass die meisten Back-End-Entwicklungen mit Programmiersprachen wie Java oder C # lediglich eine REST-ähnliche Oberfläche erzeugen und dass alle Anstrengungen in Bezug auf Anzeige, Visualisierung, Dateneingabe / -ausgabe, Benutzerinteraktionen usw. angegangen werden über clientseitiges Framework wie Angular, Backbone, Ember, Knockout, etc ...
In der Zeit vor jQuery habe ich viele Diagramme gesehen, in denen in MVC in der n-Tier-Entwicklung eine klare, konzeptionelle Grenze zwischen M, V und C bestand. Nach jQuery, wo werden diese Linien gezeichnet? Es sieht so aus, als ob MVC und MVVM im JavaScript-Code auf der Clientseite genau richtig sind.
Was ich wissen möchte, ist, warum wir einen solchen Übergang gemacht haben (von der Betonung der serverseitigen Programmierung zur clientseitigen, von der Bevorzugung kompilierter Sprachen zu Skriptsprachen, von der zwingenden zur funktionalen Programmierung, all dies scheint gleichzeitig stattgefunden zu haben ) und welche Probleme hat diese Umstellung / Verschiebung gelöst?