Pourquoi Ruby et Ruby On Rails dans le développement d'application web ?

Cette question a été posée dernièrement sur la Mailling List de RailsFrance. Effectivement, si on veut promouvoir Ruby dans le monde informatique français, il faut pouvoir argumenter pourquoi on trouve que c'est une bonne idée.

Tout le monde est en droit de se poser la question. Voici donc, pour moi, l'avantage de Ruby par rapport aux autres technologies à l'heure actuelle.

Ruby c'est fun

Matz, quand il a créé Ruby, a voulu faire un langage fun avec lequel il pourrait s'amuser à coder. Aujourd'hui tous les développeurs Ruby diront à peu près la même chose. Coder en Ruby est plaisant. L'avantage de ce point est qu'un développeur Ruby est plus détendu. Un développeur détendu est un développeur plus heureux. Un développeur plus heureux est motivant pour une équipe. Un développeur heureux essayera de faire son travail proprement. L'ambiance d'une équipe de développeur Ruby peut ainsi être agréable. Moins de stress sur un projet, c'est un projet qui part avec un peu plus de chances de réussir.

Ruby aime les tests

La communauté Ruby actuelle est convaincue de l'utilité des tests unitaires. Ainsi, chaque librairie est poussée par la communauté à avoir des tests. Beaucoup de développeurs, moi y compris, privilégierons une librairie avec des tests unitaires plutôt qu'une sans aucun tests.

Cette philosophie permet d'avoir un environnement de développement de test simplifié directement dans Rails. Pas besoin de se prendre la tête pour faire des tests. Si vous ne faites pas de tests de base : soit vous ne voulez pas en faire, ce que je ne recommande pas, soit vous le faites exprès.

Ruby aime le cloud

En ce moment, l'évolution logique du net est le Cloud Computing. L'idée du Cloud Computing est simple. Nos sites internet ne sont plus hébergés sur une seule machine. Les services sont séparés pour améliorer la scallabilité. Au sein de la communauté Ruby, les développeurs sont très attachés à cette idée. Ainsi beaucoup d'utilitaires pour gérer et utiliser son cloud commencent à voir le jour comme Chef. L'architecture même de Rails permet de facilement sortir de Ruby On Rails pour ainsi utiliser son Cloud. ActiveRessource en est la preuve.

Mais coder dans un Cloud implique de coder plusieurs briques. Le Ruby a des bindings pour tous ces utilitaires, comme les systèmes de queues ou les bases de Données Non-Relationnelle. Je ne dis pas que les autres ne peuvent pas le faire. Mais là encore c'est un effet de groupe. Chaque développeur ruby a envie de jouer avec un Cloud. On pense de plus en plus en cloud.

Les plugins de Rails

Ruby On Rails possède une très grande quantité de plugins. On peut ainsi facilement trouver la petite brique que l'on cherche pour sa propre utilisation. C'est plus que l'utilisation d'un module Drupal. Car là nous sommes dans un environement facilement modifiable et sans aucune limitation. Chose que Drupal peut vite avoir.

Les Ressources

Le plus grand reproche que l'on fait actuellement au choix de Ruby On Rails, c'est le manque de ressources. Effectivement, les ressources de développeurs Ruby sont plus faibles que pour d'autres langages. Mais ceci est selon moi un faux problème. L'apprentissage de Ruby et Ruby On Rails est assez simple si on connait la logique Objet. Ainsi, n'importe quel développeur Java peut tout à fait se mettre à Ruby et Ruby On Rails. Donc avec un expert Ruby/Rails, on peut former facilement une équipe complète et compétente.

Cet argumentaire n'engage bien sûr que moi et peut donc être sujet à caution.

Mer 27 jan 2010 22:47 Publié sous ,

Mots clés , , , ,

  1. Avatar

    By Jeremy Lecour about 1 hour later:


    Merci Cyril de rappeler ces points, de temps en temps, ça fait pas de mal. J'avais moi aussi apporté mon point de vue sur le sujet, il y a quelques semaines/mois : - http://jeremy.wordpress.com/2009/11/03/ruby-et-rails-ou-bien-php-et-symfony/ - http://jeremy.wordpress.com/2009/11/13/monter-dans-le-train-de-ruby-et-rails/ Ça pourra peut-être complémenter ton propos, bien que déjà très juste et clair à mon avis.
  2. Avatar

    By Nicolas about 8 hours later:


    Après ce qu'il manque c'est peut être aussi que les hébergeurs proposent ce langage de façon standard dans leurs offres gratuites. Cela pousserait plus de gens à l'utiliser.
  3. Avatar

    By Raphaël about 9 hours later:


    @Nicolas tu touches "le" point sensible de RubyOnRails, l'hébergement... Il est vraiment plus difficile de trouver un hébergement "pas cher" pour un petit projet Rails, surtout en France/Europe... Pour un "gros" projet ce n'est généralement pas un problème, pour "découvrir" et promouvoir la techno c'est un petit peu plus compliqué. C'est d'ailleurs un argument récurrent "contre" Rails (vs PHP par exemple).
  4. Avatar

    By shingara about 9 hours later:


    @Nicolas, sur ce point, je peux passer pour quelqu'un d'extrémiste. Mais l'hébergement n'est pas la clé de voute du problème loin de là. L'hébergement gratuit a presque plus tendance à rendre Ruby On Rails trop accessible. On arrivera directement dans la problématique de PHP qui semble trop simple car trop accessible.

    Java ne possède pas d'hébergement gratuit, mais il est un des langages les plus utilisé pour faire des sites webs. L'hébergement est vraiment selon moi un faux problème.

  5. Avatar

    By yannski about 11 hours later:


    Heroku est une solution extrêmement intéressante à la problématique de l'hébergement !
  6. Avatar

    By Thomas 2 days later:


    Merci Cyril, ton argumentaire est très bien. Je vais essayer de donner le mien, plus orienté "business".

    Rails est productif : en plus des innombrables briques de fonctionnalités open-source existantes (plugins) d'une qualité remarquable, quand on développe en RoR on écrit (beaucoup!) moins de code que les autres technos, on écrit plus vite ce code et on s'amuse en l'écrivant.

    Rails est agile. Le processus-type de développement d'une appli en RoR est tout à fait en phase avec les méthodes SCRUM/Agiles : le framework vise le développement par étapes et l'adaptabilité au changement, principe-clé de la théorie darwinienne appliqué à la survie des applis web.

    Rails est maintenable : le mot d'ordre est "utilisation des bonnes pratiques avant tout". Un développeur RoR qui arrive sur un projet sait tout de suite exactement où se trouvent les éléments. Cette hyper-standardisation a deux avantages : on "oblige" les développeurs à bien développer et le code est compréhensible par tout le monde.

    Rails est plus stable : moins de code = moins de bugs, forcément! En plus, comme tu le dis, RoR est complètement adapté à une stratégie de qualité (que tu qualifies à juste titre d'indispensable) basée sur les tests d'acceptance automatisés. Quand cela est bien établi, l'application tend vers une élimination totale de tout risque de bugs, de régressions et de non respect des spécifications.

    Rails est simple : le langage Ruby est simple et le framework Rails épouse parfaitement le principe KISS (Keep it Simple and Specific). Pourquoi faire compliqué quand on peut faire simple? ou encore : la solution la plus simple est souvent la meilleure. C'est même sa principale raison d'exister selon son créateur ("web development that doesn't hurt").

    Rails est à la pointe : intégration d'Ajax, RESTful, POO, MVC, génération native des objets en XML, JSon, cloud computing, nombreuses frameworks de tests et de specs. Des services les plus innovants sont créés autour de CETTE techno : github, heroku, newrelic, lowdown! RoR a une bonne longueur d'avance sur toutes les autres technos de dév web.

    Comme Cyril, cet argumentaire n'engage bien sûr que moi et peut donc être sujet à caution.

Comment Pourquoi Ruby et Ruby On Rails dans le développement d'application web ?


RSS