Pourquoi apprendre Ruby on Rails ?

Published by Sébastien on March 16, 2015


Pourquoi apprendre Ruby on Rails ? Question récurrente posée par de nombreux entrepreneurs désireux d’apprendre à coder, nous vous proposons une liste de 7 points clés expliquant ce parti pris.

Important : Notez que Ruby on Rails est un bon choix pour débuter la programmation, mais pas un choix exclusif. Python/Django sont également de solides options. La décision du Wagon de s'orienter vers Ruby on Rails s'est prise principalement au regard de ses vertus pédagogiques.

Pourquoi apprendre à coder en Ruby ?

Ruby, un langage accessible

Une des premières choses agréables avec Ruby on Rails repose sur le langage Ruby en lui-même. La syntaxe est simple, peu verbeuse, proche de la langue anglaise et très souple. Pour les développeurs chevronés, Ruby ouvre la voie à la meta-programmation (le fait d'écrire du code pour que votre service génère d'autres morceaux de code automatiquement) de manière unique. Intellectuellement, c’est un plaisir de structurer sa pensée et d'écrire du code dans ce langage.

Un tool set minimal

Une fois le setup et la config de votre machine réalisés, le tool set associé à Ruby on Rails est le plus simple qui soit : un éditeur de texte, un terminal et un navigateur. Aucun temps et écran de chargement lorsque vous codez. Votre ordi respire. Vous aussi.

Une flexibilité extraordinaire

Rails est un framework, c'est-à-dire un cadre dans lequel le développeur doit s'inscrire. Il s’agit également d’un outil unique et parfaitement adapté aux développements d'applications web. Pour une startup, aller vite, pivoter, itérer, changer d’avis, scaler, faire et défaire fait partie du quotidien. Rails offre une flexibilité extraordinaire pour encaisser sans broncher tous ces changements.

Quel que soit le domaine dans lequel vous souhaitez vous investir, votre besoin sera généralement le suivant : une base de données, un front (la partie visible de votre application) et un back-end (le code côté serveur). La réunification et l’agencement sans douleur de ces trois éléments sont définitivement le sweet spot de Rails.

Un apprentissage et une collaboration simplifiés

Rails repose sur le principe de Convention over Configuration. L'architecture des dossiers de votre code est normalisée, et rendue obligatoire par le framework. Il existe donc le rails way. Ce dernier permet à un développeur Rails de prendre en main en seulement quelques heures n'importe quelle application Rails, même s'il n'en a pas codé une ligne, et ainsi d’en faciliter la collaboration et l’apprentissage.

Cet aspect peut décontenancer les développeurs venant d'un langage plus verbeux, qui vont souvent se demander où se trouve le code. Il faut se faire à cette abstraction. Une fois les conventions comprises et assimilées, la vitesse de développement d'une nouvelle fonctionnalité est alors extraordinaire.

La force de sa communauté

Rails est une Gem, c'est-à-dire un module open source, développée et maintenue depuis plus de 10 ans par des milliers de développeurs. Il existe en supplément des milliers de gems, d'ailleurs nous vous en avions présenté 25 récemment. Ainsi, lorsqu'une nouvelle fonctionnalité est à développer, dans 90% des cas le travail peut être réalisé rapidement en se basant sur un module existant.

Le code de chaque gem se trouve sur GitHub, s'il manque quelque chose, aucun souci, il suffit de forker et d'ajouter soi-même la fonctionnalité pour son propre produit. Libre à vous d’ensuite faire une pull request au projet initial pour partager ce développement avec la communauté (give back). Cet esprit est formidable, sur le plan éthique / moral, mais aussi économique, car les développeurs ruby ne réinventent pas la roue et intègrent au mieux ces briques existantes afin de se concentrer sur les besoins business des utilisateurs / clients.

Depuis toujours, la communauté Ruby repose sur une culture d'ouverture et de partage. En supplément des multiples communautés sur le web, vous trouverez de nombreux relais physiques partout dans le monde, à l'image de l'excellent groupe Paris.rb.

Une skill reconnue dans le milieu Startup…

Si il est vrai que dans le monde corporate des langages comme Java et C# restent les rois, Ruby de son côté est souvent plébiscité par le milieu startup. De nombreuses startups devenues de grand succès du web ont commencé et continuent avec Rails (GitHub, Twitter, Basecamp, Shopify…) et quelques alumni du Wagon ont d’ailleurs trouvé des postes de junior developer à Paris.

…qui fait sens au sein d’une stack plus large

Pourquoi existe-t-il autant de langages de programmation différents ? Ne serait-il pas plus simple d'en avoir qu'un seul à apprendre ? Il y a beaucoup de raisons, notamment historiques, qui peuvent expliquer cette multitude de langages. Il y a des langages qui vont être plus adaptés pour faire du web, d'autres pour faire du mobile ou encore d'autres pour envoyer un homme sur Mars. Ce qui est intéressant de noter, c'est que les briques élémentaires de tous ces langages sont très proches, voire identiques. Une fois qu'on maîtrise un langage de programmation, il est beaucoup plus aisé d'en apprendre un second. Le plus dur reste d'acquérir le mindset de programmeur.

Par la suite, si un job vous demande de coder dans un autre langage, après une semaine intensive à fond dessus vous ferez rapidement l'analogie syntaxique entre votre langage préféré et le nouveau. Dans les faits il vous faudra au minimum maîtriser une stack plus complète :

  • HTML & CSS : ce ne sont pas des langages de programmation, mais de représentation de la donnée. C'est ce que le navigateur sait lire pour pouvoir afficher une page web (contenu et style)
  • JavaScript : c'est le langage de programmation que connaît le navigateur, qui permet de rendre les pages dynamiques. Par exemple, sur Gmail, les nouveaux emails apparaissent automatiquement sans rafraîchir la page, et c'est grâce à JavaScript (et AJAX plus précisément)
  • GitHub Flow : il est toujours pertinent de versionner et d'utiliser git, même si on est seul. C'est un formidable outil et GitHub l'a sublimé en apportant au-dessus une couche sociale ainsi que des outils de collaboration formidables.
  • SQL : c'est le langage de requête utilisé pour parler avec une base de données comme PostgreSQL. Une application web présente des données à l'utilisateur, et permet de les modifier (par exemple, Facebook affiche des posts dans un feed, et vous permet d'en créer de nouveaux), et c'est le rôle de la base de données de stocker tout cela.
  • Ruby : le langage exécuté côté serveur (on parle de backend, par opposition au frontend composé de HTML/CSS/JavaScript), pour pouvoir utiliser Rails.

L’ensemble de ces concepts sont abordés et intégrés lors du programme full-stack du Wagon et c’est incroyable de voir les étudiants emmagasiner en 9 semaines ce que d'autres mettent des années à acquérir. Les profils entrepreneurs des élèves du Wagon amènent une grande diversité dans les projets, et challengent en permanence les compétences techniques du staff. Rafraîchissant ! Sans parler des résultats bluffants !

Let's build our world!

Sebastien Saunier
CTO du Wagon