Ruby on Rails : dossier complet pour tout comprendre sur cette techno phare du web2.0

Faisant suite à la conférence de JF Ruiz à laquelle j’ai pu assister (voir le résumé), je me penche aujourd’hui sur le langage Ruby et plus particulièrement sur le Framework Ruby on Rails. Ce concept est au cœur de beaucoup de sites 2.0 et donc au cœur de la bulle…

Ruby On Rails (RoR pour les intimes) commence à faire énormément parler de lui sur le net : conséquence -> une foule de documentations, d’exemples, de tutoriaux en tout genre… Le but de ce dossier n’est pas de tout expliquer  ni de rentrer dans les détails du code Ruby. Je vous présente ici cette nouvelle technologie, ses enjeux, ses avantages. Vous trouverez à la fin de ce billet la liste des documents qui sont pour moi les plus intéressants concernant ce sujet.

 
Au sommaire :

 

Un peu d’histoire sur Ruby pour commencer

Ruby a été créé au Japon, par Yukihiro "Matz" Matsumoto en 1993. La première version a été publiée en 1995. Son auteur voulait un langage à la fois simple comme le Python mais aussi flexible comme le Perl. Son nom est d’ailleurs un clin d’œil à cet ancien langage et pas du tout un acronyme !

 

Ruby ok ça a un joli nom, mais c’est quoi ?

Ruby est un langage de script orienté objet. Il s’agit donc d’un langage de programmation conçu pour le web. L’une de ses plus importantes caractéristiques est d’être entièrement orienté objet . Rentrons un peu plus dans le détail :
    * toute donnée est un objet, y compris les types ;
    * toute fonction est une méthode ;
    * toute variable est une référence à un objet.
Cependant cela n’empêche pas une programmation procédurale.

 

De Ruby vers Ruby on Rails (RoR) :

Malgré ses nombreuses qualités, il manquait au langage Ruby un Framework puissant, exploitant au mieux ses nombreuses "facettes". Ruby on Rails s’est présenté comme le candidat idéal.
La première version de RoR date de juillet 2004. Le framework a été extrait de Basecamp, un outil de gestion de projets développé par David Heinemeier Hansson (37signals). La première version stable (1.0) est sortie le 14 décembre 2005. Petite anecdote de taille : RoR sera inclus dans le système d’exploitation Mac OS X 10.5 (sortie début 2007).


Concrètement ça sert à quoi ? 

Ror permet de faire sites Internet de manière poussée, fonctionnelle, rapide et fournissant tous les outils nécessaires pour les sites que l’on trouve aujourd’hui. Il propose aux développeurs d’améliorer considérablement leur productivité grâce à :

  • un code plus concis, plus évolutif et produit plus rapidement ;
  • une configuration minimale en favorisant certaines conventions ;
  • des technologies déjà intégrées comme "Ajax" permettant d’offrir aux utilisateurs finaux une interface "riche" et plus ergonomique.

Il en résulte des sites qui proposent des interfaces riches en fonctionnalités, pourvues d’une forte interactivité, illustrant bien les services étiquetés Web 2.0.
De plus, tout a été conçu pour minimiser la partie développement d’un projet et maximiser la partie créativité et originalité du projet. Ainsi, il est possible de produire des petits sites web sans écrire une seule ligne de code ! Un
certain nombre d’o
utils sont disponibles à l’installation et permettent d’automatiser les tâches les plus classiques (création d’un formulaire, gestion de la base de données, gestion des erreurs..)

 

L’un des plus gros avantages : la productivité imbattable

En effet, grâce au Framework RoR tout a été pensé pour développer le plus simplement mais aussi le plus rapidement possible. Prenons l’exemple de la création d’un blog (voir tutorial eyrolles) : en seulement quelques minutes et certes avec un peu de pratique, l’auteur de ce tutorial a réalisé une plateforme de blog complète incluant la gestion des commentaires le tout avec une base de données en …  62 lignes de code… imbattable non ?

 

Quel environnement de travail ?

RoR est complètement interopérable : il est compatible Windows, MacOS et Linux.
Pour les utilisateurs de Windows, il suffit d’installer Ruby One-Click Installer qui est un installateur complet. Ensuite il faut ouvrir un shell DOS ( et oui !!!) et lancer la commande :
    gem install rails –include-dependencies –r
Toujours dans le shell, il suffit de lancer la commande  suivante pour créer tout le squelette de votre projet dans le dossier de votre choix :
    rails mon_projet
Vous êtes enfin prêt à développer en RoR !

Pour ce qui est du déploiement du projet, RoR souffre là encore de sa jeunesse : on trouve peu d’hébergeurs compatibles avec le Ruby (Dreamhost en est un, suggéré par JF Ruiz, merci à lui) et parmi ceux-ci peu sont gratuits (hostingrails.com ou xmgfree.com). Néanmoins devant l’énorme engouement qui est entrain de se passer pour le RoR, les hébergeurs font et feront de plus en plus d’effort dans ce sens là.

 

Un exemple de code ?

Même si j’ai dit que je ne rentrerai pas dans le code, il peut être intéressant d’en voir une ou deux lignes :
    10.times { print "Bienvenue sur mon blog !" }
-> Affichera 10 fois Bienvenue sur mon blog !. Plutôt intuitif et simple, non ?

 

 

Facile de passer de PHP, ou Java vers RoR ?

Bien que ces trois langages sont ou peuvent être orientés web, ils n’ont pas grand-chose en commun. Le Java ressemblera au Ruby par son côté orienté objet , le PHP par son côté procédural ou objet (pour PHP5). Je ne pense pas toutefois qu’il soit aisé de migrer vers le Ruby. Bien qu’il soit complètement optimisé pour une grande productivité on l’a vu, le Ruby reste un langage de programmation à part entière et nécessite donc un apprentissage préalable et nécessaire. De surcroît, l’environnement de travail est assez loin de Dreamveawer ou Eclipse, là il s’agit de manipuler la console DOS et d’utiliser un serveur propre comme WEBrick ou lighttpd. Mais la quantité de documentation que l’on peut trouver en ligne ou dans les librairies et l’énorme communauté qui est entrain de se construire autour du RoR permet une appréhension du langage beaucoup plus aisé qu’il n’y a quelques mois. Avec un peu de courage et de motivation, les habitudes viennent vite et la vitesse de développement n’est qu’un facteur de motivation supplémentaire.

Qui utilise déjà ce nouveau langage ?

On trouve déjà plusieurs sites Internet utilisant déjà RoR , parmi les plus connus :


  • Basecamp : un des sites développés par 37signals. Cette application de gestion de projet compte plus de 250 000 utilisateurs enregistrés.
  • Odeo : le célèbre annuaire de podcast met à disposition de ses utilisateurs un million de références.
  • List Apart : ce magazine en ligne sur le webdesign comptabilise 14 millions de pages visitées par mois (Page Rank de 9 ! assez rare pour être précisé ).
  • Eins.de : ce site internet allemand dessert 1,2 millions de pages par jour (100Gb de trafic). Son architecture a récemment évolué1 pour améliorer ses performances.
  • Scoopeo.com : je ne le savais pas et merci à jm pour la précision : une belle réussite en tout cas montrant le potentiel du RoR…
  • Eyeka.com : site français en béta qui a pour but de promouvoir et valoriser des photos et des vidéos de qualité (merci à Richard de Railsfrance.org pour la découverte)

 

En conclusion…

Au final, RoR est prêt pour le Web 2.0 dans le sens où il facilite le développement d’interface riche (AJAX). Son temps d’apprentissage est relativement cours grâce à une excellente documentation présente sur le web. Le Framework est développé autour d’un seul langage (le Ruby)  ce qui en facilité la découverte mais aussi la maîtrise. Le Ruby en lui-même est complètement tourné objet avec ce que cela comporte comme avantages et profite d’une syntaxe simple et concise. Restant open source, RoR possède une forte communauté prête à faire régulièrement évoluer le Framework.

Toutefois, RoR est encore difficilement déployable du fait du petit nombre de solution d’hébergement qui propose déjà une compatibilité adéquate. De part sa jeunesse, RoR n’a pas encore d’appui significatif dans le monde professionnel (mis à part 37signals). Enfin, son usage ne peut s’envisager que pour de nouveaux projets (on ne peut pas migrer un projet existant vers RoR ou n’en employer que pour une partie d’un projet existant).

 

Sélection à lire sur Ruby on Rails :

Site officiel de Ruby on Rails

Site communautaire avec artiles, tutoriaux, conseils

PDF de présentation de Ruby par son créateur Matz traduite par Alain Ferer

PDF de synthèse sur RoR très complet et plus technique réalisé par Jerôme Mordelet (avec une importante bibliographie sur le sujet)

Présentation des 13 vainqueurs du RailsDay 2006

Découvrez aussi les sous-titres à télécharger

Trouver le sous-titre français pour The 100. La meilleur solution pour découvrir de nouveaux épisodes d'une série TV et les sous-titres associés.
14 Commentaires (ajouter le vôtre)
  1. Pour info, Scoopeo est aussi entièrement développé en ruby on rails.

  2. jm -> merci, je ne savais pas ! bravo pour la réalisation… je mets à jour le dossier !

  3. Précision: Ruby n’est pas un language uniquement web, c’est un language tout court!
    RoR est un framework web écrit en Ruby.

  4. aysoon

    merci de la précision…

  5. Richard Piacentini

    Petite typo ici "PDF de présentation de RoR par son créateur Matz traduite par Alain Ferer", il ne s’agit pas d’une présentation de RoR mais de Ruby…

    Et pour les sites français développés avec RoR tu peux ajouter la version beta de Eyeka (http://www.eyeka.com)

    Très bien ton dossier, félicitations !

  6. Merci pour ces précisions, je viens de corriger le dossier et j’ai rajouter Eyeka dans les liens…

  7. Roso

    Bonjour, désolé mais j’écris ce commentaire pour voir si j’ai bien compris :
    RoR utilise donc la technologie Ajax ? ou est-ce deux technologies totalement différentes ?

  8. Bonjour, désolé mais j’écris ce commentaire pour voir si j’ai bien compris :
    RoR utilise donc la technologie Ajax ? ou est-ce deux technologies totalement différentes ?

  9. RoR est en fait un Framework, c’est à dire un ensemble d’outils rassemblé dans un package pour faciliter le développement autour d’un langage en l’occurrence le Ruby. Ajax est un autre ensemble de méthodes qui est présent dans le Framework RoR et donc que l’on peut utiliser directement.

  10. sid_la_chouette

    Salut, vous dites que ruby à un environnement de developpement éloigné de celui de dreamweaver et eclipse, mais on peut integrer ror à eclipse j’ai pas encore testé mais ca ne saurait tarder (http://doc.ubuntu-fr.org/eclipse section ruby).
    Si j’ai bien compris.

  11. speap

    Bonjour, peut-on considérer RoR comme étant une technologie permettant de faire des RIA, au même titre que Flex, Silverlight, ou encore Ajax ?

  12. Thousands and look closer buy cytotec dead hand held.

  13. Bonjour,

    http://www.business-on-rails.com/ est un annuaire référençant les sites réalisés à l’aide du framework.

    Cordialement

  14. Le site Twitter est aussi développé en avec RoR =)

© 2006-2017 Frédéric Cozic  
Propulsé par Wordpress sous licence Creative Commons