Comme certains le savent peut-être déjà, à Pantographe nous utilisons Ruby et plus particulièrement Ruby on Rails (aussi appelé Rails) pour réaliser les projets de nos clients.
Ici nous souhaitons vous faire partager pourquoi nous utilisons ce langage au quotidien.

À propos de Ruby

Commençons par présenter le langage Ruby.

Ruby est un langage, tout comme PHP, Python, Perl, etc. C’est un langage de programmation initié en 1993 par le développeur japonais Yukihiro « Matz » Matsumoto. La première version est sortie en 1995 sous licence libre. La naissance de Ruby est principalement issue de mauvaises expériences et de frustrations suite à l’utilisation de certains autres langages (Smalltalk et Lisp).
Ruby se veut robuste avec une syntaxe naturelle, il est également basé sur le principe de moindre surprise.

D’après Matz : “Ruby est simple en apparence, mais son architecture interne est très complexe — tout comme notre corps peut l’être1.”

Ces propriétés (langage pratique à utiliser et facile d’accès), nous ont confortés dans le choix de ce langage au quotidien.

Qu’en est-il de Rails ?

Construire un site web en Ruby implique de re-développer à chaque fois des concepts bien établis et définis par des conventions. Pour éviter cette surcharge inutile, la plupart des agences et studios utilisent des frameworks ou des Content Management Systems (CMS), pour construire des sites et applications web. Par exemple, dans l’environnement PHP, le framework Symfony est le plus utilisé.

Un framework est une collection de librairies, d’outils, permettant de faire un certain nombre d’opérations courantes pour un site web, comme effectuer des échanges avec une base de données.
À Pantographe nous utilisons Rails. Car il permet de réaliser les opérations courantes d’un site web, tout en permettant de faire du temps réel, de l’envoi d’email, et de gérer le téléchargement de fichiers …

Rails est un framework issu d’un développement empirique. Dérivé du cœur de l’outil de Basecamp, un outil de gestion de projet, Rails a été ensuite rendu open source. Par ailleurs, Basecamp est une structure qui nous convient et qui inspire notre façon de travailler aussi bien techniquement qu’humainement (c.f. leurs 5 livres).
À ce jour, Rails est utilisé par d’autres services tel que GitHub, Shopify, Airbnb, Twitch, SoundCloud ou encore Zendesk.
Au fil des années l’outil a beaucoup évolué en profitant des différentes expériences des uns et des autres pour devenir un outil robuste et mature.

Rails suit certains principes tels que le DRY (Don’t Repeat Yourself) et la Convention over Configuration. Ces deux principes, auxquels nous adhérons à Pantographe, nous permettent en plus d’avoir des applications propres de l’intérieur, de faciliter la maintenance du projet tout au long de sa vie et son évolution par des itérations, sans repartir de zéro.

Rails et Pantographe

Au delà du fait que Ruby et Rails nous correspondent, de par leur simplicité de mise en place et configuration, ils nous affilient dans une communauté de développeurs chaleureuse portée sur l’entraide.

De plus, Rails est fortement utilisé dans l’univers des startups, notamment aux États-Unis.
Il permet en effet, de rapidement mettre en place un POC exploitable, sans nécessiter une importante refonte ou de réinitialiser le projet pour effectuer le MVP ou la première version. Contraintes, que nous avons rencontrées fréquemment dans d’autres environnements.

Nous avons également développé un outil interne : aiguillage. Ce dernier nous permet d’accélérer certains de nos processus récurrents, comme par exemple l’initialisation d’un nouveau projet. Ainsi, la centralisation de toute la configuration basique d’un projet et ses dépendances, profite aux futurs projets, voire même aux projets existants. Il nous est donc plus facile d’effectuer certaines opérations de maintenance, et de rendre les phases de démarrage de projet plus efficaces.
Par conséquent, nous avons des outils nous permettant de nous concentrer au maximum sur les problématiques métiers des projets, afin d’écarter les problématiques annexes de production.

Enfin, devant la diversité des langages et des frameworks, et de leur évolution rapide, nécessitant une veille chronophage, nous avons décidé de nous spécialiser dans Rails. Nous avons donc décidé de dépenser toute notre énergie pour réaliser nos projets internes et pour nos clients dans cet écosystème, au point d’être reconnus dans la communauté Rails. Pour conclure, concrètement ce choix de Rails nous permet au quotidien d’être plus rapides, plus efficaces et plus solides dans nos actions.


1: Matz, discutant sur la liste de diffusion anglophone Ruby-Talk, le 12 mai 2000.