Symfony ou Django ou [Flask] ? Angular/React/ [Vuejs 3] /Stimulus?

Je suis tombé sur cette série de 7 articles plutôt bien écrit sur Flask et VueJS.

Ça donne une impression de clarté, simplicité et efficacité. Mais je ne voudrais pas que ça soit trompeur et que ça se révèle de guingois.

Tout ce qui manquerait à Flask de base serait dans cet exemple ? (Où ils parlent de composants tierces) Et s’il y a du template en front, j’ai l’impression qu’il faut se taper du CRUD côté back même si a l’air assez concis.

édit : un commentaire dans cet article parle de WTForms. Tout ça et les précédents composants tierces de l’article initial se branchent tout seul où il faut faire des pieds et des mains pour que ça fonctionne ensemble ?

Tes questions sont celles qui nécessitent un niveau assez expert dans les technos, ça dépasse la simple veille et les concepts d’architecture qui vont avec du prototypage. Tu es en train de demander un cadrage technique complet là… Même si tu l’obtenais, je pense que ça ne t’aiderait pas forcément des masses, parce que tu poses la question à une audience qui ne connaît pas ta boîte, ton projet, etc. (Note : c’est pour ça que les connards de consultants comme moi sont bien payés quand on fait des missions d’audit et de cadrage chez des clients, c’est parce que les clients ont déjà essayé les réponses toutes faites, en voulant économiser les jours à se retrousser les manches pour apprendre, et se sont planté les pieds dans le tapis quand même ^_^)

Sinon il y a emberjs qui a un cycle de dev raisonnable, est bien maintenu et se tient loin de la hype.

(peut-être hors sujet ?)

Ça veut dire quoi debug visuel ?

Je suppose que c’est un moyen d’afficher l’état des variables comme ce que propose cake php : https://book.cakephp.org/3/fr/development/debugging.html

À moins que ma mémoire me fasse défaut sur le nom du framework, l’éditeur informatique dont je parlais plus tôt avait abandonné EmberJS pour AngularJS car ils n’étaient pas content d’EmberJS mais je ne me souviens plus pourquoi.

Je ne sais pas. J’ai fait un copier-coller de l’expression dans l’article comparatif. Je suppose que ça veut dire un système de debuggage plus textuel que d’autres et moins sexy. Après ça ne me dépaysera pas du mode debug de RStudio assez minimaliste.

heu oui mais non.

Même si le côté Api de Flask + VueJS, ou d’autres associations à la carte, ont l’air très séduisants il y a effectivement trop de questions à se poser et à mettre en place pour chacun des composants à configurer aux petits oignons pour la situation ci-dessous:

On n’est pas avec le DSI, l’admin sys et le lead dev à discuter de ce qu’on va faire avec 4 dévs et 50 utilisateurs, on est avec Philippe et 5 utilisateurs + un utilisateur clé (qui est aussi responsable de production métier) et pis c’est tout :slight_smile: . Ce qui me fait encore plus aller vers Django compte tenu certes de mes presque 3 ans d’expérience en R Shiny (+ auparavant divers autoapprentissages php, CakePHP, un peu de Python en) mais qui risque de ramer si je dois tester des composants externes.

Un article ci dessous bien fait sur le choix des framework Web pour Python qui ne se contente pas de faire des comparaisons mais qui pose les mêmes questions judicieuses que toi.

« The de-facto standard for good reason, Django is the dominant full-stack framework for Python. Excellent for getting started quickly and with a proven track record for scaling, Django is a great fit for many projects.»

Ce paragraphe ci-dessus me fait dire que moi tout seul et mes utilisateurs qui peuvent tenir dans une pièce auraient du mal à rentrer dans les cases d’une réunion de cadrage d’un service informatique : une solution clé en main étant plus approprié AMHA ( *) . Après je peux me tromper :slight_smile: . Mais je ne me suis pas mal débrouillé avec R Shiny… sauf peut-être la dette technique…mais de toute façon avec un SI composé d’une seule personne et d’un débit internet anémique…

édit : * = une solution clé en main, comme Django visiblement, étant plus appropriée AMHA, en lisant les divers contributions et suggestions de ce fil :+1: :slight_smile:

Je pose la question parce que j’utilise Django pour un projet perso (et apprendre Django et du webdev fullstack par la même occasion) et je debug dans tous les sens, aussi bien avec des plugin à ajouter à Django que à partir de mon IDE (ici: Visual Studio Code):

… Et en creusant un peu plus je pense que l’article que tu as donné tout pourri mal informé:

Django doesn’t offer multiple types of databases.

Ils n’ont pas lu la doc ? (PostgreSQL, MariaDB, MySQL, Oracle ,SQLite). Et si c’est « plusieurs DB en même temps », oui c’est possible.

Django doesn’t have any support for API.

« Any » support ? Le plugin/extension/whatever le plus populaire pour Django c’est Django Rest Framework, qui permet très simplement de créer une API REST à partir de tes modèles.

Flask does not offer dynamic HTML pages.

?
Flask n’empêche pas de mettre du Javascript dans ses pages générées.

Flask web framework uses a Ninja2 template design.

C’est Jinja2. Et c’est un moteur de template, pas un « design » (moteur que Django peut aussi l’utiliser).

Features of Flask: […] Extensive documentation.
[…]
The best feature of Django is Robust documentation.

Wut ?

1 « J'aime »

Haaaa Python, la troisième meilleure option quel que soit le projet. Le visual basic de 2020 :).

2 « J'aime »

Aaargl un troll ?! :smile:

En tout cas du point de vue de la syntaxe et de la grammaire Python n’a rien à voir avec le langage VB, j’apprécie le premier et j’ai tout fait pour ne plus faire du second au début de ma carrière il y a plus de 20 ans.

Mais tu tombes bien de passer par là, à moins que je confonde ce n’est pas toi qui critiquait Django ? C’était dans un fil sur le remplacement d’un CRM par Django, mais peut-être que tu critiquais en fait toutes les tentatives de refaire à la main les CRM et ERP.

Ou alors tu ne critiques pas Python en tant que tel mais tu critiques le fait qu’il soit présenté comme la réponse à tout ? : rappel je suis assez premier degré, j’ai souvent du mal à discerner les différents niveaux d’ironie :yum:

C’est quoi ton véritable avis en fait ? :slight_smile: Sur Django et Python.

C’est souvent le risque de ce genre de comparatif, difficile de se faire une opinion car on n’est pas sûr que les gens l’ont rempli consciencieusement.

:slight_smile: .

C’est pas un troll, c’est un fond de verite sur le ton de l’humour mais faut pas y chercher trop. C’est vrai, Python est un langage facile d’accès avec une liste de defaut longue mais aussi plus d’avantages. C’est vraiment le troisième meilleurs choix pour quasi tout. C’est mediocre pour tout, et c’est une énorme force. C’est jamais une grosse erreur comme PHP. Et de meme, ca remplit la case de « langage de programmation facile a appréhender sans se tirer une cartouche de shotgun dans le pied », souvent par des gens qui sont pas ultra experts dans un domaine particulier, mais qui se concentrent sur un objectif business pressant, en type « Rapid Application Development » avec les libs kivonbien. Bref exactement le meme role que Visual Basic remplissait il y a des années, avec des leçons apprises depuis et un environment technologique different orienté web et micro-service, mais meme role dans le grand foutoir des choses. Bref, demi troll, je maintiens tout ce que j’ai dit sur le ton de l’humour, mais y a des raisons pas trollesques.

3 « J'aime »

:sweat_smile:.

Je dois dire que @GloP derrière l’arrivée fracassante, il dit ce que je disais aussi dans un de mes premiers messages. Dans les grosses boîtes Python est relativement cantonné à l’automatisation, et PHP aux sites de com’ ou de marketing à monter vite par une boîte de web design. Personne ou presque ne fait le choix de Python ou PHP pour un projet massif.

Mais dans les petites structures où chacun doit faire un peu de tout, du coup ce sont de très bons outils.

L’argument numéro 1 est que le ticket d’entrée est cher et que personne ne veut le payer. Sur le court terme, React et Vue sont largement supérieurs. C’est probablement cette raison qui rend React et Vue aussi populaires ; ils sont facilement approchables, on peut les apprendre graduellement, tout en sortant rapidement une appli. Ember te force à d’abord quasiment tout apprendre pour pouvoir faire une appli utilisable. J’en suis à la moitié du bouquin et j’ai du balancer dedans 30 ou 40 heures, mais je suis loin de pouvoir développer mon appli perso complète avec. Par contre je vois la valeur du framework, clairement, par rapport à du React ou du Angular. C’est solide, maintenable, bien pensé et géré par des gens qui savent faire tourner une prod sur le long terme ; ça se sent.
Mais je pense que sur le long terme, sur une appli pas mise à jour souvent, Ember a plus de valeur.

Et ils font quoi comme choix alors ? :slight_smile: (Plus par curiosité car vu tout ce que j’ai raconté, je doute que la réponse à cette question soit appropriée à ma mission, mon profil, mon client).

Ne me dit pas .Net avec Glop l’ancien microsoftien qui doit approuver :yum:. Pour moi c’est un choix parmi d’autres selon le projet et l’écosystème du SI ? Ni ne me dit pas client lourd ? Qui est très bien en environnement industriel et en temps réel, pas pour tout les projets. Et le projet que j’avais vu en Java + Angular ? J’entends déjà Glop qui râlait sur Java si ma mémoire est bonne :smiley: Sans parler des mauvaises implémentations : quand je vois certaines banques ou magasins qui ont leur navigateur qui plantent tout le temps, ce n’est pas la faute du client léger, c’est que c’est mal développé, et dans ce cas il vaut mieux effectivement un ancien AS400 qui répond à la seconde ou presque que ces implémentations foireuses.

édit : Ma question porte sur les solutions utilisées pour les projets massifs en client léger :slight_smile:

Côté front (client léger donc), le standard sur les gros projets c’est React, avec Angular en deuxième place.

Pour la partie backend, les gros projets sont la plupart du temps en Java ou C# (voire JS avec NodeJS).

1 « J'aime »

IoT/réseau de capteur, middleware, IA… j’ai des centaines de contre exemples à ce que tu dis. Chez des grands comme des petits. Le choix va dépendre de la finalité, de la faisabilité et des ressources à disposition.

1 « J'aime »

Tu as retiré « pour un projet massif » de ta citation, c’est le point clé pourtant.
(l’edit en douce c’est moche :stuck_out_tongue:)

Un petit projet dans une grosse structure pourra tout à fait être en Python.
Le problème du Python, c’est qu’au delà d’une certaine taille, le code devient très difficile à maintenir, contrairement à d’autres langages.

C# (.NET donc ) ou Java, Ok.

Par contre NodeJS… certains développeurs adorent mais les admin sys ou devops je n’ai pas l’impression. Et les dépendances bonjour l’angoisse en NodeJS.

Je n’aime pas trop non plus, mais on ne peut pas nier que c’est pas mal utilisé dans certains types de situation (notamment des frontaux web grand publics soumis à forte charge).

Oui, j’ai édité car ça ne change pas le sens de mon message.

Mon expérience perso est limitée par ce que je vois au boulot (je bosse dans un labo à forte connotation info indus). On a souvent des entreprises qui viennent nous voir pour auditeur, optimiser, bricoler leur SI. Et le bazar qu’on trouve est rarement du au langage utilisé… mais à des fondations bancales, des fonctions mal ou pas documentées, etc.

On a déjà récupéré des ERP ou MES en Python comme php. Souvent parce que dans les ressources, au moment de lancer le projet il y avait plus de mec « python » que « java ».