Retour sur MacRuby, une idée vraiment originale et prometteuse
Par Didier Pulicani - Publié le
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:
MacRuby:
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 !