Reply to comment

Compte-rendu de la conférence Paris on Rails

Logo Paris on Rails

Compte-rendu de la première conférence Paris on Rails, consacré au langage Ruby et surtout au framework de développement applicatif Ruby on Rails, qui s’est tenue le 17 novembre 2006 à la Défense.

Il s’agissait de la toute première conférence française d’envergure sur ce thème. J’ai trouvé que c’était très bien pour une première conférence. Les présentations étaient plutôt techniques dans l’ensemble. La salle était presque pleine, la population masculine et jeune, surtout des développeurs, pas de "décideurs". Beaucoup avaient déjà fait un peu de Ruby on Rails, il y avait pas mal de développeurs PHP, et une minorité de développeurs Java.

 

Téléchargement des présentation

Les supports des présentations sont téléchargeables sur le site Railsfrance.org.

Les présentations :

  • Petite introduction de Richard Piacentini, qui a surtout répondu à des questions en fin de journée.
  • Il y a eu une première présentation par Michel Lara d’IBM (un ancien de Rationale) qui a parlé de l’implication d’IBM dans le libre et dans Ruby, d’Eclipse, de Raidrails et des articles Ruby/RoR sur Developerworks.
  • Laurent Julliard : introduction à Ruby, bien, mais technique, comme toutes les présentations, et nécessitant quelques bases de programmation et d’Orienté Objet pour ne pas être largué.
  • Pierre-Loïc Raynaud : C’est un ami à moi, que je n’avais pas vu depuis des années. Sa société, Pierlis, a refait le site shopping.nouvelobs.com en Ruby avec juste deux personnes sur le projets, qui ne connaissaient pas encore bien RoR. Il a parlé de la difficulté à monter un premier projet RoR tout en se formant sur le tas, mais aussi des facilités que RoR leur a rapidement apportées. Il s’agit d’une des premières références RoR commerciales en France.
  • Eric Daspet : Consultant web/php chez SQLI. Introduction à RoR. Intéressant aussi. Pour la petite histoire, hier en suivant un lien sur le site spip.net, je suis allé lire un article de première page sur uzine.net et je suis tombé sur un long commentaire technique (sur html, xhtml, etc.) écrit par Daspet.
  • Sébastien Gruhier : AJAX et RJS (remote javascript). Les fonctionnalités montrées sont visuellement très attrayantes. La présentation parle surtout des aspects visuels, des interactions, du super moteur Javascript de RoR et des évolutions à venir.
  • Christophe Porteneuve : ActiveResponse et SimplyRestful. Présentation ultra technique et trop dense sur des technologies de pointe dans RoR. Intéressant, mais si l’on ne pratique pas couramment RoR, on est vite débordé par la vitesse de la présentation et le style du confériencier, plein d’énergie et d’humour. Il a beaucoup critiqué Java (qu’il semble bien connaître) et montré notamment l’avantage du paradigme "conventions plutôt que configuration".
  • Laurent Jacot et Pierre Marchet : Applications métier on Rails. Survol d’un projet Rails de l’avant-vente jusqu’à la livraison. Présentation un peu tristounette, mais au moins les conférenciers n’avaient pas l’air de requins de l’informatique arrivistes.
  • François Simond : Hébergement haute-disponibilité dédié avec RoR. Le point sur les techniques d’interfaçages RoR<->Serveur HTTP, de choix du serveur et de l’interface (cgi, fastcgi, mongrel..), sécurité, performances. La présentation montre que le sujet de l’hébergement n’est pas encore bien maîtrisé en RoR.

Mes quelques notes :

  • Le support d’UTF-8 est toujours en cours... Ca me choque personnellement qu’un langage créé par un japonais ait un si mauvais support d’UTF-8.
  • Les Threads ne sont pas natifs, pas pour l’instant en tout cas. C’est portable mais moins performant que les threads natifs.
  • Pierre-Loïc a rappelé que RoR est quand même un peu lent ! Ca a aussi été évoqué lors de la dernière présentation. Mais ça ne gêne aucun des conférenciers, car RoR apporterait plein d’autres avantages qui compense cette lenteur relative. A noter : une VM (Virtual Machine) gérant du bytecode (ou code compilé, je ne sais pas) est en cours de développement (YARV). Un des conférenciers a rappelé que développer une VM pour un langage hautement dynamique n’est pas chose aisée : cela fait 2 ans que Perl promet son compilateur, mais ils n’ont toujours rien sorti.
  • Localisation dans RoR : La traduction des modèles en différentes langues se fait par plugins. Il y a différents plugins qui localisent plus ou moins bien RoR, qui se recouvrent éventuellement. Il n’y a apparemment pas de volonté du concepteur de RoR de nettoyer un peu cette foire au plugins en en intégrant un seul, officiel dans le coeur de RoR. Quelques soucis avec l’UTF-8 (mais « il existe des validateurs Rails depuis peu »).
  • Java est un langage pour les masochistes qui aiment écrire du code redondant, PHP est bien mais n’est pas propre au niveau de la séparation présentation/modèle (ce n’est pas moi qui l’ai dit, mais je le pense aussi). L’un des conférencier a parlé d’une photo amusante montrant d’un côté la pile immense de livres nécessaires pour développer en Java (Java, J2EE, Hibernate, Struts, etc.), et de l’autre une pile avec seulement deux livres : « Programming Ruby » et « Ruby on Rails ».
  • Il existe pleins de clones de RoR dans tous les langages, dont :
  • Turbogears
  • Django (on parle beaucoup de ce dernier en ce moment) en Python
  • Une chose à base de Groovy (une version scriptable de Java avec des extensions piquées directement à Ruby... Toute l’élégance de l’hippopotame qui veut se faire passer pour une ballerine...)
  • Symfony en PHP (produit "prometteur" mais pas encore fini).

Conclusion d’un conférencier sur ces différents frameworks : aucun de ces produits n’est à la hauteur de RoR car seul RoR a été pensé et écrit spécifiquement pour Ruby, qui réciproquement est le seul langage permettant de créer un DSL (Domain Specific Langage) élégant comme RoR. Pour avoir personnellement regardé une démo Turbogears je peux dire que c’est un peu verbeux et que le code est laid ; vouloir faire comme Ruby, mais sans écrire Ruby est une erreur. Quant à un framework MVC OO sérieux en PHP, il vaut mieux en rire qu’en pleurer.

Mise à jour du 09/02/2007

Un développeur (ou architecte technique) de la Nasa (JPL, Jet Propulsion Laboratory) a fait une conférence comparant les frameworks Java, Ruby on Rails et Python. La présentation est longue, 30 minutes, elle est à destination des développeurs internes à la NASA, mais très instructive. Elle donne Java grand perdant, RoR et les frameworks Python gagnants, avec une préférence pour Python.

Je pense que RoR garde quand même l’avantage, non par son “ancienneté”, mais parce que Ruby est un langage plus adapté que Python pour créer des nouveaux langages sur mesure (Domain Specific Langage ou DSL), et que certains inconvévients de RoR peuvent être levés facilement. Par exemple&nsp; : contrairement à ce que dit le conférencier de la NASA, il est possible de créer des tables MySQL en RoR sans écrire une seule ligne de SQL en utilisation les « migrations ».

Voici un lien vers un article sur LinuxFR mentionnant cette vidéo, suivi d’une discussion sur les avantages et inconvénients des différentes solutions, ainsi qu’un lien direct vers la vidéo (attention : elle fait plus de 300 Mo).

Quelques produits ou méthodologies à retenir :

  • Capistrano : librairies Ruby pour faire de l’administration système d’un parc Linux (ou unix). J’ai déjà vu des articles dessus récemment, et je pense que c’est une bonne base pour créerd es outils d’admininistration système. Plusieurs présentations, et plusieurs personnes dans le public, l’ont mentionné
  • CIA (Continuous Integration Automation) : c’est l’intégration continue.
  • SCRUM : C’est une méthodologie Agile, similaire à la méthode XP. Une personne a aussi mentionné l’Optional Scope Contract. Juste pour l’anecdote : en parcourant le site SCRUM que je donne ici, je me rends compte que j’avais déjà "inventé" tout seul le concept et les thèmes du "SCRUM 15 minutes daily meeting" il y a 7 ans...)
  • Memcached : librarie permettant d’avoir de la mémoire partagée entre plusieurs serveurs. Par exemple pour le partage des sessions dans une architecture RoR avec load-balancing.
  • Les meilleurs serveurs httpd pour RoR : lighttpd (prononcé laïtipidi) et nginx. Les 2 se valent en performances. nginx est un projet russe, apparemment très bon, mais pas très populaire.
  • Surveillance des applis par Monit, dont la configuration s’écrit en anglais (presque) normal.

 

Reply

The content of this field is kept private and will not be shown publicly.