/ web2py vs pyramid
web2py vs pyramid
254x
Facebook Twitter Google+
 

Voici mon expérience en ayant utilisé deux des frameworks principaux qui utilisent le language Python. Je n'ai pas encore ressentit le besoin d'essayer Django parce que pour l'instant ma première impression reliée à ce framework est qu'il semble plus complexe à apprendre et plus lourd à maintenir à long terme... ceci étant dit, je ne dis pas que je n'en ferais pas l'expérience dans un avenir proche!

.. web2py

Le premier grand projet que j'ai réalisé avec le language Python a été en utilisant le framework web2py. Consistant en une introduction à la fois pour Python et au développement web (du moins, au développement web moderne, car comparativement à il y a quelques années, il n'y a plus beaucoup de liens avec la simplicité du "bon vieux temps"!), j'ai énormément apprécié son approche. Le système développé possédait plusieurs fonctionnalité et a rapidement su évolué au fur et à mesure de l'ajout des fonctionnalités.Cependant, déjà au début, j'ai ignoré la partie "DAO" du framework en me contentant de créer des stored procedures et de retourner des tableaux associatif comme modèle. Simple et efficace, mais je perdais déjà une des fonctionnalité du framework... J'ai utilisé PostgreSQL comme base de données, alors la partie "DAO" servait au moins comme pool de connexions. La performance me semblait plus que satisfaisante, mais il faut dire que pour un système utilisé à l'interne uniquement par quelques utilisateurs... ce n'était pas un critère ayant une valeur très élevée. Rapidement cependant, j'ai apprécié le framework pour son mode "édition web", pas besoin d'environnement de développement qui est lui même intégré au serveur web! Le framework est aussi très solidement basé sur le mode MVC et rends la programmation très simple. Je n'hésiterais pas à réutiliser ce framework... mais pas dans tout les cas, le côté obscur de la chose ayant apparu récemment!

.. pyramid

Par la suite j'ai voulu développer en utilisant un autre framework, peut-être plus simple qui sait? Je voulais quelque chose d'un peu plus récent, pour suivre les derniers développement Python (ex; la branche 3.x, contrairement à web2py qui est toujours utilisé avec Python 2.x). Pour la base de données, pourquoi ne pas utiliser MongoDB? Après un peu d'investiguation, l'idée d'associer des objets pythons directement sur des objets dans MongoDB me semblait très attrayante en apportant la possibilité de développement plus rapidement. Encore ici, le support de MongoDB avec web2py est possible, mais pas trop évident à mettre en place... Le language de template de web2py est aussi fixé par le framework et est dédié à web2py, bien qu'il ressemble à d'autres language de template, il reste spécifique au framework. Il y a beaucoup de fonctionnalités pour générer du code HTML (par exemple des tableaux de formulaire), mais il est aussi dépendant de bootstrap et ça peut rendre les choses compliquer lorsque le temps de mettre à jour viendra (jusqu'à tout récemment web2py utilisait encore boostrap 2 et bien que c'était possible, utiliser boostrap 3 rendait les choses plus complexe et surtout incompatible avec le code actuel du framework). Cependant, utiliser pyramid a aussi généré beaucoup de choix... peu évident à faire au début, comme quoi à son positif il y a toujours un revers de la médaille. À commencer par le language de template qu'il faut choisir (Jinja2, mako, Chameleon, ...), la base de données (SQLAlchemy, MongoDB, ...), le routing (Traversal ou standard?), la structure des fichiers (quoique ici il y a déjà une base lorsqu'on utilise les "scaffold" et ainsi de suite. Ce n'est pas tout à fait un système MVC, mais puisqu'il est facilement modelable, je considère que le choix est ainsi laissé à l'utilisateur. Dans mon cas, puisque j'utilise MongoDB, j'ai décidé d'utiliser un modèle semblable à web2py en créant un DAO personnalisé.

... Comparaison

J'ai finalement opté pour une plus grande préférence vers pyramid, mais ça ne m'empecherait pas d'utiliser web2py pour certains besoins plus "rigide" et particulièrement dans le cas d'une utilisation en lien avec une base de données relationnelle. pyramid offre cependant des librairies basé sur des technologies plus "ouvertes" dans lequel on peut y greffer des librairies de notre choix. Ma recommandation est donc que pour débuter web2py est parfait (et la documentation est très bien faite, très pédagogique), tandis que pour une utilisation plus avancé, pyramid répondra davantage aux besoins (par exemple pour créer un API REST) et risque au final d'être plus simple (à long terme).


Loading... Veuillez patienter...