Quelques niouses (en) Ruby du mois d'Avril

C'est quoi cet article ? Facile ! Un résumé de l'actualité autour de Ruby du mois passé, pour les techos et les geeks pressés. Retrouvez moi sur ce blog pour des infos de techos à techos.

Pour les plus pressés, une seule chose à retenir pour cette brève : Twitter a amélioré la VM Ruby en y incluant un garbage collector plus puissant.

Rails 3.0.6 et 3.0.7

Ce mois d'avril a vu apparaître 2 nouvelles versions mineures de Rails 3. La 3.0.6 corrige une faille de sécurité sur la méthode auto_link. Tandis que la version 3.0.7 améliore les performances sur ActiveRecord.

Rails 3.1 : Pas encore arrivé, déjà critiqué

DHH a annoncé que Rails 3.1 inclura désormais JQuery à la place de Prototype (youpi), SASS à la place de CSS (youpi bis) et CoffeeScript à la place de Javascript (euh... youpi ?).

C'est surtout CoffeeScript qui est au centre de la polémique (regardez les commentaires de ce commit). CoffeeScript c'est du Javascript avec une syntaxe approchant celle de Ruby. Je trouve l'idée intéressante, mais le mettre par défaut ?

Par contre, big up pour l'inclusion de SASS. C'est tout simplement du CSS sur stéroïde : un langage compatible avec le CSS mais incluant des concepts de langages de programmation (variables, mixin, include, etc.).

Il ne reste plus qu'à espérer que ERB sera un jour remplacé par HAML.

Kiji le fork du fork de la VM Ruby

Les p'tits gars de chez Twitter ont encore frappé. Ils ont forké REE pour donner Kiji. C'est une VM Ruby avec un garbage collector encore plus performant. Ils annoncent diviser jusqu'à 3 le temps d'exécution du garbage collector par rapport à une VM Ruby classique.

On peut tester facilement cette nouvelle VM : rvm install kiji

Je l'ai testé succinctement sur une exécution de tests d'une application Rails. Les résultats parlent d'eux mêmes.

  • Ruby 1.8.7 : 386 secondes
  • REE : 229 secondes
  • Kiji : 140 secondes

Quoi ? De l'asynchrone en Ruby

Ça tombe bien, ce mois-ci M. Bates, de RailsCast, a fait un article très intéressant sur Faye, un système de messages push en Ruby. Cette gem propose un serveur push en Ruby ou en Node.js. Son podcast (ou sa version ascii), nous montre comment coder un chat avec Faye + Rails.

Notons aussi Goliath, un serveur asynchrone pour Ruby 1.9.

En vrac

Vous avez une énumération ? Alors vous pouvez écrire ça pour la parcourir :

enum = [1, 2, 3]
for number in enum
  puts number
end

Avec Rails la commande rake test:recent permet de ne lancer que les tests qui ont été récemment modifié, pratique non ?

Vous développez en Rails 3, vous avec un MacOs : Regardez Pow, le serveur d'app Rails pour MacOS de 37signals

En conclusion

Rendez-vous dans un mois pour encore plus de Ruby et de fun. Bon mois de mai !