Choix d'un framework web

Le problème exposé dans ce sujet a été résolu.

Bonsoir à tous !

Jusqu'à maintenant je ne me suis jamais posé la question du choix d'un framework, j'ai toujours utilisé Django. Mais aujourd'hui est un autre jour, je vais me remettre en cause et essayé de choisir LE framework qui me convient le mieux.

J'ai vu qu'il existe de très bon framework comme Ruby on rails ou encore Laravel. Du coup je suis perdu au milieu de cette jungle des framework. Comme faire un choix optimale sans être obligé d'apprendre et de tester chacun d'entre eux ?

+0 -0

Au lieu de chercher un framework puis de t'adapter à lui, cherche celui qui correspond à tes besoins, en fonction de :

  • Ton langage favori et/ou que tu maîtrises et/ou que tu veux apprendre
  • Les spécificités de ton projet (taille, technologies, serveur ou pas)
  • Si c'est un projet de groupe ou qui risque de le devenir, le nombre de personnes capables de coder avec toi dans ce langage

Au final, c'est toi l'utilisateur, donc réfléchis à ce que tu veux, et cherche ensuite le framework qui convient ;)

je vais essayer de choisir LE framework qui me convient le mieux

Comment décider pour toi justement ? A toi de te faire ta propre opinion. Il n'est peut être pas nécessaire de tous les tester : généralement ils sont assez bien fournis niveau doc, ce qui peut aider à s'en faire une première idée.

Cela dit, je commencerais par choisir un langage, selon tes affinités également, ça restreindra déjà pas mal ton choix.

+1 -0

Ça pourrait presque faire l'objet d'un diagramme de décisions.

Par exemple, l'une des premières questions à se poser est (à mon sens) : l'application web que tu souhaites construire est-elle Model-Driven.

En fonction de la réponse, deux grandes familles de frameworks (même d'architecture en fait) vont se détacher.

  • la famille 1 : basée sur un ORM (RoR, Django, Grails, Laravel, Symfony, …)
  • la famille 2 : orientée "micro-framework" (NodeJS + Express, Flask, Sinatra, Scalatra, Vert.x, Ratpack)

Ensuite vient la question du langage, du temps-réel ou non, … C'est très rare de trouver un framework qui convient bien pour tout faire. A moins d'avoir une usine à gaz infernale…

Dis-nous ce que tu souhaites faire, dans le détail, on pourra t'aiguiller en te montrant les questions que tu aurais dû te poser et t'aiguiller pas à pas.

+2 -0

Merci à tous pour vos réponses pertinentes ;)

Enfaîte si je veux choisir un framework, ce n'est pas pour faire un projet en particulier, mais plutôt pour en apprendre un, une bonne fois pour toute.

Hé oui, j'en ai marre de connaitre partiellement plusieurs framework. J'ai envie d'en choisir un , de le maîtriser, et ne plus être embêté par la suite avec des semaines d'apprentissage.

Il me faut donc, un framework polyvalent, qui va durer dans le temps et qui a une communauté grandissante ....

Difficile de faire ce choix sans passer des mois à les tester un par un, et en générale les articles que l'on trouve sur le web ne sont pas neutre, certains sont en faveur de RoR, d'autre de Django, d'autre de Symfony …

Bon, cela dit, je pense m'orienter vers un framework basé sur un ORM, après difficile de faire un choix plus précis, je connais le Python, le Java, le PHP … (mais pas le Ruby)

Ça pourrait presque faire l'objet d'un diagramme de décisions.

Javier

Je pense que ça devrait clairement en faire l'objet!

Met les différentes choses importantes a tes yeux dans un framework sur papier (communauté, langage, type de DB, architecture, nombre d'application open-source, etc..), agrémente les de facteurs et fait déjà un tour de table de ce qui existe.

Hé oui, j'en ai marre de connaitre partiellement plusieurs framework. J'ai envie d'en choisir un , de le maîtriser, et ne plus être embêté par la suite avec des semaines d'apprentissage.

DigitalSuricate

Le problème de ton résonnement c'est que tu en oublie les nombreux projets open-source que tu peut utilisé pour ne pas réinventer la roue. Tu oublie aussi le fait que souvent il faut travailler en équipe (et donc faire ce qui est le plus simple pour le plus grand nombre). Enfin bien souvent les langage offre des spécificité qui les rendent plus ou moins intéressant suivant le projet.

Personnellement moi et ceux avec qui je travail on apprend des langages et des technologies tout les jours. A chaque début de projet on analyse nos besoins et on réfléchis a l'outil le mieux placé pour y répondre. Après on met en contraste la difficulté d'apprentissage avec le temps gagné a prendre le bon outil.

Puis si tu sais codé avec un framework correctement, il y a beaucoup de principe qui reste les mêmes sur les autres frameworks.

+1 -0

Il me faut donc, un framework polyvalent, qui va durer dans le temps et qui a une communauté grandissante ....

  1. Malheureusement nous n'avons pas de boule de cristal
  2. Tu cherches le mouton à 5 pattes

Des frameworks assez polyvalents, ça existe. Mais qui font TOUT et TOUT BIEN, ça n'existe tout simplement pas.

Certains ont essayé, et se retrouvent aujourd'hui avec des usines à gaz dans lesquelles plus personne ne souhaitent mettre les mains, et sont obligés de revoir leur copie et adapter leur "pile" à des projets plus simples, plus petits, etc.

Y'a autant de façons d'écrire une application web qu'il n'existe d'application en réalité. En partant du principe qu'on retrouve certains "modèles" (j'ai parlé de Model-Driven et d'ORM un peu plus haut) certains frameworks comme RoR, Django ou Grails font le même "pari". Un truc franchement très pratique pour le cas pour lequel ils ont été créés : afficher des données.

Le jour où ton appli web va être un joyeux aggrégat de rendu côté serveur (pour l'indexation, données "figées" type catalogue) + du temps réel pour faire de jolies interfaces très réactives, qui se mettent à jour toutes seules une fois lancées, tu ne peux plus t'appuyer sur UN SEUL framework. A la rigueur un seul langage, oui, et encore, c'est se tirer une balle dans le pied.

Tous les gens qui bossent sérieusement dans le web aujourd'hui le savent. Une application réelle, vraie de vraie, est généralement un joli assemblage de différentes technologies. C'était déjà le cas avec Java EE y'a déjà quelques années (une partie rendu, une partie JMS, middleware, …) c'est d'autant plus vrai depuis l'arrivée des Node & co.

Du coup, il nous faut un objectif plus concret que "c'est pour apprendre un framework et un seul", ça n'a pas vraiment de sens en soit. Si tu souhaites te spécialiser dans le domaine du e-commerce, côté serveur uniquement parce que c'est ce genre de problématiques qui t'intéressent, alors on pourrait t'aiguiller (peut-être Java EE ? SpaceFox est, il me semble, assez pointu sur le sujet), si tu souhaites mettre en place, à ton compte, des sites webs pour de petites entreprises, alors sans doute que Symfony s'impose. Si tu souhaites te spécialiser dans des serveurs d'API temps réel, alors peut-être que Node et Express seront plus adaptés, …

Si tu es juste curieux et que c'est pour ta culture, alors ta question n'a pas lieu d'être, choisis en un, fait un petit projet avec (un truc en rapport avec tes passions) et quelques années plus tard, tu le reprendras (ou un truc similaire) avec une autre techno, et là tu seras à même de savoir pour quel emploi tel framework est plus ou moins adapté.

+0 -0

Personnellement moi et ceux avec qui je travail on apprend des langages et des technologies tout les jours.

Sanoc

Il m'a fallu plus d'un mois pour apprendre Django, et encore je n'est pas l'impression de m'en servir de façon optimale. Enfin bon, je pense que tu a fait un abus de langage en disant "tous les jours" ;)

Après on met en contraste la difficulté d'apprentissage avec le temps gagné a prendre le bon outil.

Sanoc

Je ne vois pas comment tu peux évaluer la difficulté d’apprentissage d'un framework avant de l'avoir appris …

+0 -0

je pense que tu a fait un abus de langage en disant "tous les jours" ;)

DigitalSuricate

Pour être franc, il ne ce passe pas un seul jour ou je ne soit pas sur ZesteDeSavoir ou sur le reste du net a la recherche d'une solution pour un truc encore jamais utilisé par mon équipe. Surtout que l'on fait en sorte de ce filer des tâches facile entre nous de manière a favoriser l'échange de connaissance et diminuer le facteur bus.

Je ne vois pas comment tu peux évaluer la difficulté d’apprentissage d'un framework avant de l'avoir appris …

DigitalSuricate

Nous on y arrive car on a la chance d'avoir des connaisseur tout autour de nous. C'est sur que ce n'est pas une science exacte, mais on arrive a sortir plus ou moins un calendrier d'apprentissage. Surtout une fois que tu connais les principe et que tu a juste a les réadapter au nouveau framework.

Bref on s'éloigne du sujet..

Pour l'instant essaye surtout de ressortir le "pourquoi" tu veut coder. Si c'est pour toi il serait mieux de choisir une techno cool et qui répond a tes envies plutôt qu'un techno très utilisé et donc obligatoire dans le milieu du travail mais chiante a mourir.

En gros écoute Javier.

+0 -0

Bon j'ai passé le sujet en résolu, vous m'avez pas mal "éclairé". Je vois que je ne vais pas pouvoir me contenter d'apprendre un seul framework pour faire du web. Je suis un peu déçu (car je suis fainéant :D), mais après tout je suis étudiant, je suis là pour apprendre ;)

Merci de m'avoir "ouvert" l'esprit ;)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte