Actualités

[28/04/2017] Smile annonce son plan stratégique Open Arrow 2021 et accueille à son capital EURAZEO PME, nouvel actionnaire de référence qui succède à Keensight Capital

Smile, leader de l’intégration et l’infogérance de solutions open source, choisit son nouvel actionnaire majoritaire et s’offre de nouveaux moyens lui permettant le déploiement de son plan stratégique OPEN ARROW 2021 visant à créer un nouveau champion européen de l’IT de plus de 200M€ de chiffre d’affaires.

[25/04/2017] Smile est à nouveau Strategic Partner Alfresco !

Pour la quatrième année consécutive, Smile est Strategic partner Alfresco, le plus haut niveau de partenariat !

[12/04/2017] Smile décroche le statut de Partenaire Global Elite Magento !

Smile est très heureux d'annoncer que nous devenons Partenaire Global Elite Magento - un statut accordé à seulement 5 entreprises dans le monde !

Toutes les actualités picto
       

Vous avez besoin de mettre à jour votre Lecteur Flash Flash 7

Guillemet ouvrant l'actualité des solutions
et des technologies open source Guillemet fermant
picto

JRuby on Rails et la plateforme Java

JRuby on Rails encensé et supporté par les acteurs majeurs de la plateforme Java

L'intérêt pour Ruby on Rails de la part de la communauté Java n'est pas vraiment nouveau puisqu'on avait déjà entendu James Duncan Davidson, créateur de Ant et de Tomcat a crier haut et fort dès 2006 que "Ruby on Rails est le framework le mieux pensé qu'il m'ait été donné de voir depuis dix ans" ( http://en.wikipedia.org/wiki/James_Duncan_Davidson ). Mais voilà que c'est la machine commerciale Sun Microsystems qui prend désormais parti pour ce framework sous l'impulsion de leaders charismatiques tels que Tim Bray (co-inventeur du XML).

Rails imité

Avant de voir ce qui change cette fois-ci avec Sun, rappelons nous que la philosophie de Rails, c'est à dire assumer des conventions web (notamment basée sur le REST pour la partie MVC ou le pattern ActiveRecord pour la persistance) au lieu de se satisfaire de kilomètres de XML propres aux framework d'injections de ressource et au paramétrage du J2EE, le fameux 'opiniated software' ou encore 'convention over configuration' a été copié en de nombreuses déclinaisons. Sun avait déjà misé sur le scripting sur la JVM avec Phobos, les gens a Groovy ont fait Grails, IBM s'en est inspiré avec son projet 'Zero' scriptable en PHP ou en Groovy. Google a même porté en Javascript (sur Rhino) le module ActionPack de Rails: http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html.
De ces plagiats multiples est même né un site corrosif occupé à les tourner en dérision: http://www.railsenvy.com/

Mais Rails est intrinsèquement lié à la puissance du language Ruby:

Voilà pour la forme, sur le fond, il est important de comprendre qu'on ne peut pas porter complètement Rails sur un langage moins dynamique que Ruby. Certains tels que cakePHP se contentent d'en imiter l'API la plus visible à merveille, mais sur tous les cas poussés, les limitations du langage d'implémentation reviennent au galop plomber la productivité du framework. Pour ce qui est de Java, citons notamment: le manque de support natif des closures (prévu pour Java 7 néanmoins), l'absence du support natif des propriétés (également prévu pour Java7), l'absence des mixins permettant l'héritage multiple et ainsi une IOC triviale sans tomber pour autant dans les problème d'héritage en losange du C++ ni les architectures complexes de Spring ou OSGI chez Java, l'absence de redéfinition dynamique des classes ou encore l'absence de la fameuse méthode caractéristique des objects Ruby: method_missing (récemment reprise par Groovy).

L'impasse Grails?

Les aficionados de Java devaient donc utiliser un langage plus dynamique que Java mais ayant un interpréteur écrit en Java voire un compilateur vers le bytecode Java et pouvant partager du code Java grâce à la JSR 223. Le choix était alors entre l'invention d'un nième langage de script ou alort le portage sur Java d'un interpréteur de Ruby. Le premier choix est celui fait par Grails qui a choisi le langage Groovy, inspiré de Java mais qui en étend la puissance. L'inconvénient de Grails c'est qu'il imite l'esprit de Rails sans en reproduire fidèlement l'API car par choix et par manque de ressource, il se contente de lier ensemble des frameworks J2EE existants qui sont généralement bien moins ergonomiques que ceux de Rails. La lenteur intrinsèque de Groovy retirant presque l'avantage de la robustesse de ces frameworks éprouvés. Du coup, la base des utilisateurs prêt à investir à la fois dans un nouveau langage (Groovy) et aussi dans un nouveau framework web est très réduite et aura peut être raison de cette aventure. En tout cas Sun a choisi de ne pas s'engager dans cette voie au grand dam des créateurs de Groovy. D'autant qu'on à vu, Java 7 inclura beaucoup des fonctionnalités de Groovy (closures, propriétés...), réduisant alors drastiquement sa raison d'être.

La voie JRuby on Rails:

La voie suivie par Sun est le deuxième choix: écrire un interpréteur et compilateur de Ruby sur la JVM afin de faire tourner Rails inchangé sur les serveurs d'application J2EE déployés en entreprise. Sun risque fort de récupérer sa mise car l'implémentation de Ruby sur la JVM est en passe (à surveiller dans les semaines à venir avec JRuby 1.1) de devenir l'implémentation la plus performante grâce aux capacités uniques de la VM Java disposant d'une décennie d'effort de recherche très important. Il est donc probable que la communauté Ruby migre sur cette implémentation pour bénéficier de la compilation bytecode JIT et également des serveurs J2EE robustes. On assisterait donc au rapprochement explosif de deux pierres angulaires du web: Java et Ruby.
Or personne ne niera que Sun en est l'un des principaux artisans de Java et continuera d'influer fortement cette plateforme. Et si ce n'est Sun, alors c'est IBM (voir les nombreux articles d'IBM http://del.icio.us/tag/rails+ibm ) ou encore le mouvement open source et tant l'un que l'autre se mettent à Rails à une vitesse exponentielle.

l'engagement de Sun:

1) investissement majeur de Sun:
Sun a débauché les principaux leaders Open Source de JRuby, à savoir Charles Headius Nutter, Ola Bini ou encore Thomas Enebo pour qu'ils puissent développer JRuby (l'implémentation sur de Ruby sur la JVM) à plein temps et en restant sous license libre (GPL/LGPL/CPL). Au total, environ 6 ingénieurs à plein temps et une communauté très active sont désormais moteurs de JRuby.
2) Netbeans offre un riche support de Ruby et Rails:
Sun sort sa nouvelle version de son IDE Netbeans (6 beta), véritable rival d'Eclipse et insiste lourdement sur le support de Ruby (le plus avancé; depuis que sur Eclipse, RadRails racheté par Aptana a pris un peu de retard) en le listant comme point n°2 des 10 fonctionnalités les plus innovantes.
http://www.netbeans.org/community/releases/60/index.html
3) Sun sponsorise la plus grosse conférence de Rails européenne:
Fait inédit, Sun est l'un des 3 plus gros sponsors de la RailsConf Europe 2007 de Berlin qui vient de réunir les plus grands esprits de Ruby on Rails (IBM n'est pas loin derrière).
http://www.railsconfeurope.com/
4) Craig McClanahan, l'inventeur de Struts puis architecte sur les JSF est désormais un fervent évangéliste de Rails (JRuby on Rails) chez Sun et a notamment fait une présentation à la RailsConf:
http://conferences.oreillynet.com/presentations/railsconfeurope07/re7_craigrmcclanahan.pdf
Pourquoi continuer à faire du Struts quand son inventeur lui-même martèle lui même qu'il y a mieux?

La reconnaissance réciproque par la communauté de Ruby on Rails:

La reconnaissance devient réciproque, le Guru de Rails, David Heinemeier Hansson dit DHH, (prix Best Hacker of the Year 2005 at OSCON from Google and O'Reilly), indique en effet sur son blog qu'il voit tout cela d'un très bon oeil et que JRuby va désormais représenter une implémentation incontournable pour les gens de Rails:
http://www.loudthinking.com/posts/11-sun-surprises-at-railsconf-europe-2007
D'habitude très écouté, il est sûr que cette prise de position publique de DHH va réellement créer une synergie inédite entre les deux très grosses communautés, de là va naitre la reconnaissance d'une productivité incroyablement accrue pour le développement web (voire 'web2.0') en entreprise, grâce à la pénétration de ce secteur par Java: Bref Rails ne sera plus l'apanage des startups.
Etant donné les innombrables domaines d'applications de Rails sur les serveurs Java, notamment grâce à la proximité de l'API de Rails avec les spécifications fonctionnelles des clients ou encore à la facilitée d'implémenter d'autres langages, déclaratifs notamment, spécifiques à un corps de métiers grâce à la puissance de Ruby, Smile ne manquera pas de suivre d'un oeil affuté les opportunités de service accrus dans les domaines du CMS, des CRM, des ETL ou des ERP...

Raphaël Valyi
picto

Commentaires

       
christophe
Le fait que Sun choisisse une technologie donnée ne prédit pas son succès cf EJB atomisés par hibernate.
Après il faut relativiser le succès de Rails qui est bien confidentiel. Vous disqualifiez bien vite Groovy soit disant lent, c'est le fait même d'employer un langage dynamique qui pose problème que ce soit ruby ou groovy ne change pas grand chose. Grails me parait être un très bon choix pour un développeur java parce qu'il permet d'intégrer tout ce qu'on a pu développer en java avec facilité.
mercredi 09 septembre 2009 @ 19:40
       
Ecrire un nouveau commentaire