Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/07172.jsonl.gz/217

Sinatra est un framework web ou, plus précisément, un langage dédié facilitant et accélérant le développement d'applications web en Ruby. Premier concurrent historique à Ruby on Rails, il a su s'imposer auprès des entreprises comme des développeurs. Il est en effet léger, rapide, et certainement l'un des frameworks offrant la plus grande liberté lors des phases de conception.
Sinatra est né en 2007 en Californie, sous l'impulsion du développeur Blake Mizerany. Il a été créé à la fois comme une bibliothèque et un langage dédié au développement d'applications web à l'aide du langage de programmation Ruby. Il est dépendant de l'interface serveur Rack, les deux outils doivent donc s'utiliser ensemble. Son nom rend hommage à la classe du chanteur et acteur Frank Sinatra, dont il essaie d'approcher l'élégance dans son code.
Sinatra est surtout le premier des frameworks Ruby à s'être détaché de l'approche Ruby on Rails et avoir réussi à gagner de l'importance. Il est donc l'un des plus anciens frameworks Ruby, synonyme d'une certaine maturité et pérennité. Il se distingue essentiellement de Rails du fait qu'il ne suit pas le modèle MVC (Modèle-vue-contrôleur), laissant d'avantage de liberté à l'équipe de développement.
Depuis sa toute première version remontant à septembre 2007, Sinatra est distribué sous licence MIT. Il est donc un framework libre et open source. L'équipe à la tête du logiciel libre d'intégration continue Travis CI assure en grande partie le support financier utile à son développement.
L'équipe derrière Sinatra le définit comme un langage dédié servant à créer des applications web en Ruby à travers un effort minimum. Le terme de langage dédié s'oppose ici directement à celui de langage de programmation généraliste. On utilise parfois l'acronyme anglophone de DSL (pour Domain Specific Language) pour le qualifier. Sinatra est par conséquent un langage de programmation spécifiquement conçu pour le web, permettant de spécialiser Ruby qui est à la base un langage généraliste.
Langage à part entière, Sinatra se présente pourtant dans une version relativement dépouillée, qui laisse le champ libre à l'équipe de développeurs. Il est bien sûr possible d'ajouter toutes sortes de fonctionnalités, mais rien n'est obligatoire. Il s'agit donc d'un outil parfait pour démarrer le développement d'une application web dans un environnement minimaliste et néanmoins stable, offrant une grande flexibilité. Il faut voir Sinatra comme la colonne vertébrale d'un projet, structurant la logique applicative. Le reste de l'environnement est paramétrable à volonté.
Contrairement à certains de ses principaux compétiteurs, Sinatra est donc un framework particulièrement léger, rapide et flexible. Il est aussi populaire, ce qui lui permet de disposer d'une documentation fournie. Il impose enfin une quantité limitée de code lui étant spécifique. Il est donc très facile à prendre en main pour les développeurs coutumiers de Ruby.
Pour les entreprises cherchant à s'assurer de la pérennité d'une technologie, Sinatra est une option rassurante. Il est en effet, à l'échelle de l'histoire du web, un vieux framework. Développer avec lui peut donc suffire pour prouver à un management que des mises-à-jour fréquentes seront assurées et que les éventuels problèmes et autres failles de sécurités continueront d'être résolus dans les meilleurs délais.
Sinatra s'impose aussi largement pour les sociétés qui souhaitent axer leurs développements sur la performance de leurs applications web ou sites Internet. Une petite application Sinatra peut en effet tenir en un seul fichier, ce qui s'avère compliqué avec d'autres frameworks tels Ruby on Rails. Il est également globalement plus rapide que ses principaux concurrents.
Il faut surtout garder à l'esprit que Sinatra est un framework laissant extrêmement de liberté aux développeurs. Cela a donc énormément d'avantages pour les entreprises qui souhaitent une solution personnalisée jusque dans les moindres détails. Cela s'accompagne cependant d'un temps de développement potentiellement plus long qu'avec un framework embarquant nativement de nombreuses fonctionnalités avancées. Comme toujours dans le développement, la finalité et les objectifs recherchés justifient de la technologie employée.