Je fais de la programmation Web depuis longtemps maintenant, et quelque part, je ne sais plus pourquoi nous faisons ce que nous faisons aujourd'hui (ou comment en sommes-nous arrivés à faire les choses de cette façon)?
J'ai commencé avec le développement Web ASP de base et très tôt, la logique d'affichage et de gestion a été mélangée sur la page. Le développement côté client variait énormément (VBScript, différentes versions de JavaScript) et nous avions reçu de nombreux avertissements concernant les validations côté serveur (et je me suis donc tenu à l'écart de la logique côté client).
Je suis ensuite passé à ColdFusion pendant un moment. ColdFusion était probablement le premier framework de développement Web qui séparait l'affichage et la logique métier à l'aide de leurs balises. Cela me semblait très clair, mais très verbeux, et ColdFusion n’était pas très demandé, et j’ai donc poursuivi.
J'ai ensuite sauté sur le wagon du groupe ASP.NET et ai commencé à utiliser leur approche MVC. J'ai aussi réalisé que Java semblait être un langage de tour d’ivoire des systèmes d’entreprise, et j’ai également essayé leur approche MVC. Ultérieurement, ASP.NET a développé ce modèle de conception MVVM et Java (précisément J2EE ou JEE) a également rencontré des difficultés et a mis au point ses approches MVC2.
Mais aujourd’hui, ce que j’ai découvert, c’est que la programmation d’arrière-plan n’est plus le lieu de l’enthousiasme et du progrès. De plus, les pratiques MVC basées sur le serveur semblent être obsolètes (les gens utilisent-ils vraiment plus JSTL?). Aujourd'hui, dans la plupart des projets sur lesquels je travaille, j'ai découvert que les frameworks JavaScript et le développement côté client sont le lieu où tous les progrès excitants et innovants sont réalisés.
Pourquoi ce passage du développement serveur au client a-t-il eu lieu? J'ai fait un simple comptage de lignes de l'un de mes projets JEE et il y a plus de lignes de code en JavaScript que Java (à l'exclusion des bibliothèques tierces). Je trouve que la plupart des développeurs utilisant des langages de programmation tels que Java ou C # ne font que produire une interface de type REST, et que tous les efforts importants d'affichage, de visualisation, d'entrée / sortie de données, d'interaction utilisateur, etc. via un framework côté client comme Angular, Backbone, Ember, Knockout, etc ...
Avant l'ère pré-jQuery, j'ai vu beaucoup de diagrammes où il existait une ligne conceptuelle claire entre M, V et C dans MVC dans le développement multiniveau. Post-jQuery, où sont ces lignes tracées? Il semble que MVC et MVVM sont tous là dans le code JavaScript, côté client.
Ce que je veux savoir, c’est pourquoi nous avons opéré une telle transition (de l’importance accordée à la programmation côté serveur au côté client, de privilégier les langages compilés aux langages de script, de la programmation impérative à la programmation fonctionnelle, tout cela semble s’être produit simultanément. ) et quels problèmes cette transition / ce changement a-t-il résolus?