Ruby, comme tous les langages de script, n'est pas un foudre de guerre. Ce n'est pas ce qu'on lui demande. Mais parfois il est besoin d'accélérer un script ou encore d'accéder à une librairie native. On écrit alors une extension en code natif. Voyons comment procéder avec C++.
Les langages de script apportent l'avantage de la concision du code, ainsi que la facilité et la rapidité de l'écriture de celui-ci, parce que ce sont des langages de haut niveau. Le revers de la médaille avec les langages de scripts, en raison même de leur nature, se situe au niveau de la vitesse d'exécution. Dans l'immense majorité des cas d'utilisation des scripts cette lenteur n'est pas pénalisante. Mais parfois le besoin de s'affranchir d'un goulet d'étranglement, ou encore le besoin d'invoquer une API native nécessite l'écriture d'une extension. Ruby, le langage de script qui nous intéresse aujourd'hui prévoit cette situation, et fournit un jeu d'API et de macros pour s'interfacer avec du code C. Nous allons étudier comment manier ce jeu d'API et écrire un peu de code C et surtout beaucoup de C++, langage que votre serviteur préfère à C.
Frédéric Mazué