Autour des frameworks web

Avant d'en dresser la liste, discutons

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Hello tout le monde,

Je me demandais si dresser la liste des frameworks webs qu'on connaît, emploie et sur lesquels on a un minimum de compétences sur ZdS aurait un intérêt, un peu à l'instar de ce qui est fait dans ce sujet

C'est une question qui revient souvent chez les plus-trop-débutants que de se demander quel framework est le mieux adapté à ce qu'ils souhaitent faire, le soucis, c'est que framework ça reste quand même vague et on va tomber dans des débats sans fin. Typiquement nodejs, Sinatra, Vert.x sont plutôt des plateformes que des frameworks. Ou alors est-ce-que ce sont des frameworks à proprement parler ? Qu'en pensez-vous ?

Un point d'entrée pour la réflexion : la liste sur Wikipédia

Faîtes-moi part de vos idées, si on arrive à un consensus on essaiera de créer un post-it clair pour présenter tout ça, avec notamment comme ils l'ont fait dans le topic multimédia une "liste à notre sauce" surtout en indiquant ce pour quoi les frameworks sont bons ou non. Qui les utilise et pourquoi c'est adapté dans leur cas.

EDIT : j'ai parlé de framework, en fait on pourrait carrément élargir à la pile technologique (eg pour prendre les piles les plus différentes possible : PHP+Symfony, Scala+Vert.x). Ca mériterait presque un article rédigé par l'ensemble de la communauté en fait :\

EDIT² : la même question va se poser pour les frameworks côté client : Underscore, Backbone, Angular, …

Édité par Javier

Happiness is a warm puppy

+2 -0

L'idée des tableaux utilisés par le sujet du forum multimédia est sexy je trouve. En info complémentaire, je verrai bien les suivantes (liste à etoffer évidemment) :

  • le langage (PHP, Ruby, … etc)
  • la dernière version
  • est-ce encore maintenu ?
  • éventuellement le "niveau" requis pour bien saisir les tenants et aboutissants du framework
  • Liste des principaux support (je suis pas sûr de l'intérêt du truc ceci dit)
  • License

C'est un peu pêle-mêle, mais voilà. Aussi, comme tu le mentionnes, faudrait citer aussi les frameworks "clients" (Backbone, … etc), parce qu'ils sont des frameworks au final. Par contre, séparer les deux tableaux (une liste des framework serveurs, et une liste des frameworks clients) ?

Pour la liste des libs, je suis pas tout à fait sûr que c'aurait sa place dans le même post-it / topic, surtout vu le nombre incommensurable de libs…

Édité par Talus

"Meh." Outil de diff PHP : Totem

+0 -0
Auteur du sujet

@Syl je pense que la différence la plus importante à faire dans ce contexte c'est plateforme vs. framework.

Pour l'exemple, si on essaie de classer ces éléments (chacun d'eux pouvant faire l'objet d'une ligne dans le tableau) dans différentes catégories :

Y'a des frameworks là-dedans, mais pas que (et pour Sinatra ça commence à devenir complexe).

Si on prend ce qu'ils appellent framework sur ce benchmark on voit qu'il y a un savant mélange plateforme / framework.

Happiness is a warm puppy

+0 -0

Des vrais frameworks client web, il n'y en a pas énormément, les deux plus connus et utilisés étant Backbone et AngularJS (Underscore n'est pas un framework, mais une librairie). On doit pouvoir rajouter EmberJS dedans (j'ai pas trop touché à celui-là pour ma part), après je n'en connais pas d'autre vraiment important.

Côté serveur, ne serait-ce qu'en PHP il y en a un bon paquet par contre…

@Javier :

  • Symfony = framework
  • NodeJS = plateforme
  • Java EE = plateforme
  • Ruby on Rails (pas touché)
  • Django = framework
  • Vert.x (pas touché)
  • Sinatra (pas touché)
+0 -0
Auteur du sujet

Oui pour les frameworks côté client, j'ai volontairement gonflé la liste avec underscore alors qu'en effet c'est une bibliothèque.

Pour le reste : En fait Java EE c'est carrément une spécification et pas du tout un framework (on va retrouver des frameworks pour Java EE type Spring, Seam+JSF, Struts, …), et Sinatra une DSL (bonjour pour le classer).

Vert.x est une plateforme multi-langage (bonjour pour la classer elle aussi). RoR est vraiment un framework pour le coup.

Comment on se débrouille avec ça ? Comme dans le benchmark on mélange tout ? Ca va porter à confusion, non ?

Encore pour Vert.x ou Sinatra on peut s'abstenir d'en parler même si c'est dommage, mais pour node on peut vraiment pas passer à côté. Et j'ai pas parlé de Gemini, undertow, grizzly (tous basés sur la techno Java NIO).

Même dans les docs c'est pas très clair…

Si on prend bottle qui se définit comme un framework, et qu'on regarde l'exemple de code :

1
2
3
4
5
6
7
from bottle import route, run, template

@route('/hello/<name>')
def index(name):
    return template('<b>Hello {{name}}</b>!', name=name)

run(host='localhost', port=8080)

Et qu'on compare ça avec Sinatra

1
2
3
4
5
require 'sinatra'

get '/' do
  'Hello world!'
end

Ou Vert.x-Groovy

1
2
3
vertx.createHttpServer().requestHandler { request -> 
  println hello world
}.listen(8080,localhost)

Là on voit déjà un "createHttpServer" qui indique qu'il sait faire plus que ça (sockets, …)

Mais sinon bah… Ça se ressemble quand même fortement.

Bref, pas gagné cette affaire et je suis preneur de toute aide à l'organisation de ce joli boxon. Et aussi, pensez à dresser la liste des trucs (puisque finalement on sait pas comment les appeler) que vous avez essayé ou maîtrisez ça aidera sans doute à y voir plus clair.

EDIT : est-ce-qu'on peut partir sur : "une plateforme embarque un serveur web" vs. "un framework produit du code exécutable sur un serveur web" mais même ça ça me paraît pas tout à fait juste.

Édité par Javier

Happiness is a warm puppy

+0 -0

On revient à ma première réponse qui dit que tout le monde n'est pas d'accord entre ces termes techniques. Donc avant de faire le tableau, il faut poser des définitions pour éviter les trolls "nan mais ça c'est pas un framework c'est une librairie" toussa.

Desolation sur le SdZ | GitHub | Twitter

+2 -0
Staff

Un framework est l'union d'une library (et non librairie, je vais pas au furet pour coder un site web), ou peut appeler ça aussi API et d'un ensemble de convention et d'obligations de codage.

Dans les framework que j'aime bien il y a Symfony (PHP) qui est full MVC et qui avec un plugin sympa peut faire du RESTfull.
J'aime aussi beaucoup (et je suis en train de coécrire un tuto à ce propos) ASP.NET MVC, qui est un projet open source portable et extrêmement puissant. D'autant qu'il contient de base des liens avec tous les outils de .NET pour faire du TU, les ORM, l'asynchrone, le subscribe/publish…

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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