Libs, framework et CMS

Face à un besoin particulier.

Le langage et des librairies

Cas d'utilisation :

  • Un petit service léger (API).
  • Une tâche unique sur le système.
  • Un besoin ou une envie de monter une architecture sur-mesure.

Une exception notable : Clojure. Il n'y a pas de framework web notamment. Tous les projets se font en composant des librairies en fonction des besoins.

En web on peut citer :

  • Sinatra dans le monde Ruby
  • Flask dans le monde Python
  • Des clones de ces deux libs dans différents langages

Les frameworks

C'est un ensemble de librairies choisies et de conventions établies autour d'une documentation fournie.

Cas d'utilisation :

  • Besoin de prototyper rapidement avec des règles métier sur-mesure.
  • Avoir des conventions communes et une documentation établie pour une équipre

En web backend on peut citer :

  • Ruby on Rails dans le monde Ruby
  • Django dans le monde Python
  • Symphony et Laravel dans le monde PHP
  • Spring et Play dans le monde Java.

En web frontend, on peut citer :

  • React + Redux, Vue.js, Angular, Ember dans le monde Javascript
  • Elm
  • Re-frame dans le monde ClojureScript

Les CMS

Ce sont des outils qui répondent souvent à un besoin particulier et exposent peu le code sous-jacent.

On peu citer Wordpress, Drupal et Joomla.

Tant que l'outil correspond au besoin, tout va bien. Les problèmes peuvent survenir lorsque l'on commence à tordre l'outil pour qu'il remplisse un besoin métier particulier ou qu'il faille développer un plugin sur-mesure.