01net Pro Entreprise informatique
01net. web avec Google
Actualités gestion et logiciel informatique professionnel
Offre et recherche Emploi informatique internet
Salon conférences inofrmatique IT ebusiness 01
Informatique et TIC pour les PME TPE
Vidéos reportage entreprise acteur informatique
Retrouvez tous les services 01Net dédiés aux professionnels !
Télécharger logiciels Pro et progiciels
Livres blancs e-commerce informatique et nouvelles technologies
Retrouvez l'ensemble des dossiers de la rédaction 01net Entreprise
Les synthèses des bonnes pratiques sur les sujets IT du moment

Les développeurs mettent le cap sur Ruby on Rails

Proposant le meilleur de Java et de PHP, Ruby on Rails accélère le développement d'applications métier tout en améliorant leur maintenance.

envoyer
par mail
imprimer
l'article
Un sondage effectué cet été, auprès de 5 000 professionnels et publié sur le site Sitepoint.com révèle que près de 6 % des développeurs ont déjà adopté Ruby on Rails (RoR ou Rails), et que 25 % s'y intéressent. Pourtant, ce framework open source (licence MIT), écrit en Ruby, n'existe que depuis un an. Une première version stable a été publiée en décembre 2005. Elle est issue d'un développement de la société 37 signals, icône du Web 2.0.
Malgré sa jeunesse, Rails va-t-il remplacer PHP et Java pour le développement d'applications Web ? La question mérite d'être posée. Mais, avant d'y répondre, il faut bien faire la distinction entre le langage Ruby et le framework Rails. Le premier est un langage interprété, nativement orienté objet, considéré comme l'évolution naturelle de Perl et de Smalltalk. Le second repose, lui, sur le motif de conception modèle, vue, contrôleur (MVC) qui fait aujourd'hui référence pour architecturer une application Web. Cette méthode a le mérite de dissocier correctement les couches métier et présentation.
Les arguments de Rails ont en tout cas convaincu Sun d'embaucher les créateurs de JRuby, une installation de Ruby pour Java. ' La communauté Java ne s'arrête pas au langage Java, déclare Alexis Moussine-Pouchkine, architecte Java et services Web chez Sun. Rails répond bien aux besoins des applications Crud [Create, Retrieve, Update, Delete, NDLR]. ' Ces dernières effectuent des opérations de lecture et d'écriture dans les bases de données. Le déploiement d'applications Rails sur une infrastructure Java gagnerait en robustesse. Elle donne aussi la possibilité aux partisans de Ruby d'utiliser des outils de développement avancés basés sur Netbeans.
Bien d'autres signes révèlent l'engouement pour ce framework. Des grands noms de l'informatique, comme Adobe, Apple, IBM ou Sun, soutiennent Rails. Des écoles renommées, telles l'Epita et l'Insia, l'ont associé à leur cursus 2007. Et de nombreuses entreprises et institutions l'ont adopté pour développer des applications sensibles. En France, c'est le cas de la communauté d'agglomération belfortaine, de Cartaix, un spécialiste de la fidélisation client, et d'Eyeka qui propose sur une plate-forme d'échange et de vente de photos et de vidéos sur le Web.
Ce succès repose d'abord sur l'adhésion des développeurs qui apprécient son utilisation. ' Rails offre le meilleur compromis entre la productivité de PHP et l'approche structurée de Java EE (nouveau nom de J2EE depuis la version 1.5) ', résume Jérémy Chatard, directeur technique de Breek, une SSII qui se spécialise dans Rails. ' C'est le framework Web le mieux pensé qu'il m'ait été donné de voir depuis dix ans ', s'enthousiasme James Duncan Davidson, le créateur de Tomcat, le serveur de JSP-servlets le plus utilisé au monde.

Moins de lignes de code, donc plus de lisibilité

On peut comparer Rails aux Java Server Face (JSF) de Java EE ou au Zend Framework dans le monde PHP. Mais il se distingue en s'appuyant sur le principe de convention plutôt que de configuration. Il s'agit de ne configurer que les cas particuliers. La mise en ?"uvre de ce principe repose sur l'application de règles implicites entre le développeur et le socle de développement. Elle requiert un effort de formation supplémentaire lors de la prise en main du framework. En contrepartie, le développeur n'a pas à gérer, entre autres, le mapping objet relationnel. ' Il suffit que le nom de la table de la base de données corresponde à celui de la classe Ruby ', détaille Richard Piacentini, cofondateur de Nuxos, une SSLL spécialiste de Rails.
Une fois ces conventions en tête, le développeur se concentre sur la dimension métier de son application et délègue la plomberie et les détails techniques au framework. Rails met en ?"uvre un autre principe essentiel - Dont Repeat Yourself (DRY) - qui favorise la réutilisation et la standardisation du code. ' Chaque partie de la logique applicative et de l'interface ne doit être exprimée qu'une seule fois et à un seul endroit dans l'application, ce qui aide à factoriser le code ', argumente Richard Piacentini. Au final, Rails réduit significativement les coûts de développement et diviserait par trois le nombre de lignes de code à écrire par rapport à PHP, et bien davantage encore si on le compare à Java. Cette concision améliore la lisibilité des applications et donc leur maintenance.
Ce ne sont pas les seuls points distinctifs. Rails génère le squelette complet d'une application en quelques clics. Comme un L4G, il s'appuie sur le modèle de données pour produire les interfaces Crud correspondantes. Cette fonctionnalité génère à la fois la navigation, les vues, les modèles de données, et les tests unitaires associés. Lorsque le développeur souhaite adapter le squelette de l'application, il peut réaliser toutes les opérations - manipuler les données de la base relationnelle, créer d'autres vues et règles métier - avec un seul langage (Ruby) et un seul framework (Rails).

Encore quelques défauts de jeunesse

Ce framework, très séduisant, possède encore quelques lacunes. Les outils de développement restent, en effet, rudimentaires et les offres d'hébergement sont quasi inexistantes. En plus, les prestataires réellement expérimentés se comptent pour l'instant sur les doigts d'une main dans chaque pays. Des défauts de jeunesses qui seront vite corrigés.
En revanche, il souffre de deux autres défauts plus handicapants. Tout d'abord, même si 37 signals se targue de posséder 500 000 utilisateurs pour son application gestion de projet Basecamp, personne n'a de réel retour d'expérience sur sa capacité à monter en charge. C'est un problème pour les applications à très forte volumétrie. En outre, Ruby serait plus lent que PHP. Deux problèmes qui devraient être résolus à terme avec Yarv. Cette machine virtuelle, en cours d'écriture, accélérera ainsi l'exécution des applications avec du code précompilé. Et les efforts de Sun autour de JRuby devraient aller dans le même sens.
Dernière limite, conceptuelle celle-là. Rails s'avère très mal adapté à la reprise d'applications existantes, surtout si le modèle de données existe déjà et qu'il n'est pas parfait. ' Rails est surtout adapté au développement de nouvelles applications métier, et autour de gros projets dans lesquels on manipule et met en forme de nombreuses données. Le gain sera encore plus significatif si le besoin d'interaction avec les données devient très intense ', analyse Nicolas Cavigneaux, ingénieur développement spécialiste de Rails. Pour ne rien gâcher, Rails brille aussi sur les projets Web 2.0. Il comprend nativement les méthodes Ajax et peut, via certains modules complémentaires, générer des interfaces utilisateur évoluées.

Les quatre atouts de Ruby on Rails

1 - La simplicité
Grâce à l'expressivité du langage Ruby, la courbe d'apprentissage de Ruby on Rails se situe entre celle de PHP et de Java.

2 - La concision
Ruby on Rails est moins prolixe que d'autres environnements de développement. En migrant de PHP à Rails, une entreprise est ainsi passée de 50 000 lignes de code à 5 000.

3 - La maintenance
Outre la concision du code, Rails regroupe les meilleures pratiques récentes comme l'architecture MVC qui simplifie la maintenance applicative.

4 - La productivité
Le développeur se concentre sur la dimension métier de l'application. Le framework se charge du reste, accélérant d'autant le développement.

Rails face à ses deux plates-formes de développement

FRAMEWORK RUBY ON RAILS 1.1.6 CAKE PHP 1.1.8 JAVA EE (ENTERPRISE EDITION) 5.0
LANGAGE ASSOCIÉ Ruby PHP Java
DOMAINES DE PRÉDILECTION . Architectures web et client riche Ajax et Flex.
. Application métier et de gestion, portails.
. Architecture web.
. Applications métier et de gestion.
. Architectures web, client-serveur, client riche (Ajax via JSF), temps réel.
. Tous types d'applications : métier, gestion, scientifique, etc.
POINTS FORTS . Simplicité.
. Concision et expressivité du code.
. Maintenance aisée du code.
. Génération automatique des squelettes des tests unitaires et fonctionnels.
. Simplicité.
. Souplesse.
. Possibilité de mélanger approche procédurale et objet.
. Génération automatique du squelette de l'application.
. Maturité.
. Large communauté d'utilisateurs.
. Couverture fonctionnelle.
. Montée en charge.
POINTS FAIBLES . Peu d'hébergeurs et de prestataires.
. Pas de références de site à fort trafic.
. Apprentissage difficile pour les développeurs qui ne viennent pas du monde objet.
. Pas d'internationalisation.
. Moteur de persistance intégré moins flexible que celui de Java.
. Communauté de petite taille
. Peu de plug in, et peu de projets.
. Complexité.
. Apprentissage difficile pour les développeurs qui ne viennent du monde de l'objet.
COMMENTAIRE . La première version date de décembre 2005.
. Apple et Sun supportent Ruby et Ruby on Rails.
. La première version du framework date de 2005. Cake PHP se présente comme une copie en PHP de Rails. Il sera bientôt confronté au Zend Framework qui devrait vite s'imposer comme le framework MVC de référence de la communauté PHP. . La première version de Java EE date de 1998. Sun annonce 5 millions de développeurs Java et vient d'embaucher les créateurs de JRuby.

avis d'expert : Richard Piacentini, cofondateur de la SSLL Nuxos Group

Il est le créateur du portail de la communauté Rails en France et l'organisateur de Paris on Rails, la première conférence française sur Ruby on Rails.

<i>' Trois à cinq fois plus productif que J2EE. '</i>
' Le principe de convention plutôt que de configuration soulage le développeur d'une grande partie des aspects techniques de l'application. Ils sont pris en charge par le framework. Et, comme un L4G, Rails génère automatiquement le squelette de l'application auquel le développeur n'a plus qu'à apporter ses modifications. '

<i>' Il encourage les bonnes pratiques. '</i>
' Il bâtit aussi les squelettes de fichiers pour les tests unitaires et fonctionnels. Depuis la version 1.1, Rails aide à écrire des scénarios de tests complexes qui seront utilisés pour valider la chaîne applicative en simulant, par exemple, les interactions avec des utilisateurs. '

<i>' On peut presque lire un modèle de données à haute voix. '</i>
' Grâce à l'expressivité de Ruby et à la concision de Rails, tout développeur peut comprendre la logique métier et la modifier simplement. '

Témoignages

Mathieu Chappuis (Communauté d'agglomération belfortaine) : <i>' Rails est taillé pour séduire les développeurs. '</i>
' J'ai mis beaucoup de projets PHP en production. Leur maintenance s'avère souvent difficile. De son côté, J2EE est plus structuré, mais aussi plus complexe. Le temps d'analyse initiale est trop important. A la frontière, Ruby on Rails maquette une application Web dynamique parfaitement fonctionnelle, dans le temps normalement imparti à la création d'un site Web statique. De plus, ce framework repose sur les meilleures pratiques d'aujourd'hui : modèle strict MVC, modules d'aide, etc.
Rails est taillé pour séduire les développeurs. En effet, tout informaticien peut facilement comprendre son code grâce à sa lisibilité et à son expressivité. Un point important pour accélérer l'adhésion. Enfin, Ruby va plus loin que Rails seul. Nous projetons, par exemple, de créer un portail décisionnel basé, pour sa partie Web, sur Rails et alimenté par un ETL écrit en Ruby qui agglutinera des données du système d'information. '

Samuel Dechomets (Cartaix) : <i>' La rapidité d'apprentissage et de mise en ?"uvre ont fait la différence. '</i>
' Après avoir été initiés aux atouts du motif de conception (MVC), nous avons lancé une étude auprès d'experts internes et externes pour trouver le framework de développement qui corresponde à nos besoins. Marginale par rapport à PHP, J2EE et.NET, Ruby on Rails correspondait à nos attentes. Nous n'avions pas plus d'expérience en Java qu'en C#, et les frameworks PHP n'étaient pas aboutis. La rapidité d'apprentissage et de mise en ?"uvre de Rails ont fait la différence. Et nous avons pu constater qu'il fallait moins d'un mois pour assimiler et mettre en ?"uvre le langage, le framework et la méthodologie associée. '

Franck Perrier (Eyeka) : <i>' Nous avons abandonné J2EE, notre choix initial. '</i>
' Positionnés sur un concept naissant, nous avions besoin d'un environnement de développement agile pour nous adapter rapidement aux évolutions de notre marché. Le challenge consistait à combiner l'apprentissage d'un langage sur une application critique devant rapidement entrer en production avec un délai de mise en production serré. Les nombreux atouts J2EE n'ont pas suffi. C'était pourtant notre choix initial. Mais cette technologie s'est révélée trop lourde par rapport à notre besoin de réactivité. A l'inverse, Rails proposait un code plus léger. Au début, des experts de Ruby on Rails ont accompagné notre équipe de développement, constituée d'experts J2EE et J2ME. Aujourdhui, tout est en place pour faire de ce choix audacieux un succès. '

publicité
Nos partenaires