ruby est un langage de programmation open-source dynamique qui met l'accent sur la simplicité et la productivité. sa syntaxe élégante en facilite la lecture et l'écriture. ruby a été, dès le départ, conçu comme un langage homogène. son créateur, yukihiro « matz » matsumoto, a rassemblé certaines fonctionnalités de ses langages préférés (perl, smalltalk, eiffel, ada et lisp) afin d’imaginer un nouveau langage qui mêlerait astucieusement programmations impérative et fonctionnelle. à plusieurs reprises, il a déclaré que son but était « d’essayer de rendre ruby naturel, pas simple. » dans ruby, le paradigme de base est que tout y est un objet. chaque entité d’information et code peut recevoir ses propres propriétés et actions. la programmation orientée objet fait référence aux propriétés sous le terme de variables d’instance et aux actions sous le nom de méthodes. l’approche purement objet de ruby est très souvent illustrée par un bout de code montrant l’application d’une action à un nombre. ruby a pour réputation d’être un langage pour le moins flexible, puisqu’il autorise son utilisateur à en modifier les entrailles. des parties importantes peuvent être retirées ou redéfinies à loisir ; des greffes de fonctionnalités sont possibles en cours de route. en définitive, ruby essaye de ne pas contraindre le programmeur.