mars 13, 2015 3:31

Python / Django ou comment développer rapidement sans rien négliger


Dans le Web ça évolue tellement vite qu’on est rapidement confronté à la réalité de devoir faire des choix technologiques viables et surtout exploitables. Quand vient le temps de choisir un langage de programmation pour la toute première fois on se base souvent plus sur le critère de la popularité que de la qualité.

Décision de début de carrière

Comme bon nombre de développeur Web j’ai choisi ce qui me semblait être le mieux adapté pour moi au départ c’est à dire le PhP pur et dur. Celui scripté, le vrai, le moche, l’illisible, le « ça marche comme un château de carte mais ça va peut-être exploser », bref je me suis vite rendu compte que ça avait ses limites et que je programmais en RYA(Contraire de DRY, Repeat Yourself Anytime).

Heureusement pour nous, même si la communauté PhP à décidé de faire stagner le language en abandonnant Php 6, les frameworks se sont mis à sortir de partout et à nous promettre une révolution.

Symfony, codeigniter, cakephp, laravel, tout pour satisfaire le développeur en herbe que je suis :

  • ORM
  • Design MVC
  • Scaffolding pour prototyper
  • Migrations
  • Syntaxe épuré
  • Système de templating intégré

Bref, des frameworks…

Le jour du jugement dernier

Beaucoup trop de développeur (comme moi) qui programment en Php ne jure que par ça. C’est un peu le même phénomène pour les adeptes de Asp.net mais je ne m’acharnerai pas la dessus pour le moment. Après avoir touché à plusieurs langage (Php(laravel,cakephp,codeigniter),  Asp.net(mvc) et Asp classique(pas de commentaires)) dans le cadre de mon précédent emploi je suis resté perplexe.

Le jour ou on commence à douter des technologies qui nous sont offertes, que notre patron nous met de la pression sur les épaules pour qu’on livre des projets 2 fois plus rapidement on se demande s’il existe autre chose de mieux.

En cherchant bien un peu on découvre toutes sorte de langage vraiment impressionnant et performant avec des philosophies bien distinctes. Scala, python, ruby, .net, etc.

Et si le monde ne gravitait pas simplement autour de Php?

On fait un choix et on fonce

Après avoir vérifier la syntaxe et le learning curve de certains langage, après avoir lu pas mal de documentation et de cases studies, mon regard se pose sur python. Il rempli mes critères :

  • Simple
  • Intuitif
  • Propre
  • Puissant
  • Portable multi-plateforme

Bon vous me direz que mes critères étaient assez basiques certe mais mon deuxième besoin, lui, était un peu plus spécifique. Je cherchais aussi un framework capable de programmer vite et bien. Pas seulement du scaffolding qui génère du code inutilisable mais bien quelquechose d’assez puissant pour déployer une application rapidement afin que mes clients puisse saisir leurs données en un temps record.

Tomber en amour avec une espionne russe Django

Bon premièrement quand je dit Django je ne parle pas de ça :

Mais bien de ça : https://www.djangoproject.com/

Beaucoup de frameworks vantent leur simplicité, leur efficacité, leur supériorité mais franchement celui là respecte vraiment ce qu’il dit : Django makes it easier to build better Web apps more quickly and with less code.

À première vue on se retrouve avec un toolbox habituel :

  • ORM
  • Design MVC (ici MVT mais ça revient au même)
  • Administration complète (j’y revient plus bas)
  • Migrations
  • Syntaxe épuré (déjà que python est épuré)
  • Système de templating intégré (ça va de soit)
  • Gestion des permissions / groupes et utilisateurs (avec views déjà en place)
  • Et j’en passe

Ma première impression étaient la même que les autres frameworks jusqu’à ce que je comprenne l’avantage de Django par défaut. Son générateur d’aministration. Certe, c’est déjà quelque chose qui existe dans d’autre système mais ici, pas de configurations interminables, pas de gossage inutile, simplement une administration complète avec une interface utilisateur (un peu moche mais personnalisable) qui permet de bâtir une application de base solide en quelques lignes de code.

Interface utilisateur déjà intégrée, gestion des permissions / groupes / utilisateurs déjà en place. Et tout ça, s’en compter les composantes qui peuvent y être greffés via l’installateur :

  • Reordering
  • Tree
  • Wysiwyg
  • Filemanager
  • Pagination
  • Et cette liste pourrait s’étiré sur plusieurs centaines de ligne.

Je peux enfin me concentrer sur la modélisation et la logique de mon application plutôt que de perdre mon temps à développer des interfaces utilisateur redondantes et à scaffolder des Views CRUD toutes pareils.

Je conclu

En conclusion je peux vous dire qu’il existe autre chose que Php en Web et que ça vaut la peine de chercher un peu. Chaque langage, chaque technologie a ses avantages et je ne crois pas qu’un seul langage ou un seul framework va remplacer tout ce qui se fait mais je peux vous dire aujourd’hui que pour développer des applications Web moderne rapidement, mon choix est fait.