Actualité

Divers

Retour sur MacRuby, une idée vraiment originale et prometteuse

Par Didier Pulicani - Publié le

Retour sur MacRuby, une idée vraiment originale et prometteuse
Arnaud vous en parlait ce matin, MacRuby continue son évolution et c'est donc l'occasion d'entrer un peu en matière sur cet outil un peu particulier, et destiné aux développeurs.

MacRuby est une implémentation de Ruby 1.9 écrite au-dessus des technologies au coeur de Mac OS X, telles que le runtime objective-C, le garbage collector, LLVM, et les frameworks tels Foundation et ICU. Le but du projet est de permettre de créer de vrais applications optimisées pour Mac OS X qui ne sacrifient pas les performances tout en gardant les avantages de l'utilisation de Ruby.

L'idée de rassembler les technologies d'Apple dans Ruby n'est pas nouvelle (http://rubycocoa.sourceforge.net/), mais MacRuby pousse le bouchon encore plus loin. Chaque objet créé dans un script ruby est un objet Objective-C et devient donc accessible depuis du code Objective-C. Le contraire fonctionne aussi, puisque tous les frameworks du système sont utilisables depuis un script ruby. Pour cela, MacRuby utilise une des nouveautés de Ruby 1.9, les arguments nommés. Ainsi, l'appel à la méthode performSelector:withObject: s'utilise de la façon suivante:

Obj-C:
[myObject performSelector:@selector(display:) withObject:str];


MacRuby:
myObject.performSelector("display:", withObject:str)


De plus, les objets les plus utilisés (String, Array, Hash, Fixnum) sont définis par-dessus leur équivalent Foundation (NSString, NSArray, NSDictionary, NSNumber). Cela permet de transiter entre les deux langages de façon totalement transparente: il est possible de passer un array ruby à une méthode Objective-C, et inversement.

Grâce à l'utilisation de LLVM, MacRuby est aussi capable de compiler n'importe quel script ruby en langage machine (des fichiers .rbo sont générés), ce qui permet de ne pas avoir à distribuer le code source.

MacRuby vous permet donc d'écrire des applications Mac utilisant la puissance des framework du système, tout en gardant l'élégance et la simplicité de ruby.

Apple fera-t-elle une petite place à MacRuby à la WWDC ? Espérons-le !