Comme vous le savez sans doute, ces temps-ci j'étudie dbus... J'ai en particulier téléchargé son binding python, pour pouvoir le décortiquer (après tout, python aussi est objet, non ?).

Je suis vite tombé de haut devant ce genre de code (définition d'une structure) :

struct __pyx_vtabstruct_13dbus_bindings_Connection {
PyObject *((*__cinit__)(struct __pyx_obj_13dbus_bindings_Connection *,PyObject *,DBusConnection (*)));
PyObject *((*_set_conn)(struct __pyx_obj_13dbus_bindings_Connection *,DBusConnection (*)));
DBusConnection (*((*_get_conn)(struct __pyx_obj_13dbus_bindings_Connection *)));
};

Des casts en veux-tu en voilà, des pointeurs et les parenthèses qui vont avec... Quand on sait qu'en Ruby/C tout repose sur le type VALUE, qui représente un objet ruby, et qu'on manipule sans le moindre soucis, ça détonne un peu, surtout dans un projet ausis officiel : zéro typedef, ça me laisse un peu perplexe...

Bilan : nous avons les moyens de vous faire aimer Ruby :-)