Le jeudi 19 août, les développeurs du langage Ruby ont présenté Ruby 1.9.2, une version importante qui marque la véritable transition entre Ruby 1.8 et Ruby 1.9. En effet, cette mise à jour présente des améliorations en rapport avec les évolutions du monde de la programmation.
Le langage Ruby a été créé en 1995 par le japonais Yukihiro Matsumoto, qui ne trouvait pas entière satisfaction dans les langages de son époque tels que Perl ou Python. Ruby est un langage interprété multiplate-forme, fortement orienté objet et publié sous licence libre.
Ruby, présenté rapidement sur le site de la
communauté francophone ou encore étudié dans ses profondeurs sur le
Site du Zéro, est actuellement très connu du fait de ses diverses implémentations et de son
framework web
Ruby on Rails.
Ruby 1.9.2, un langage dans son époque
En plus de plusieurs
bugs corrigés, la nouvelle version de Ruby apporte beaucoup de nouveautés, répondant à l'évolution de l'informatique.
La classe Time prête à affronter l'an 2038
Avec Ruby, le
bug de l'an 2038 sera évité grâce à une nouvelle implémentation de
la classe Time, gérant le temps. Auparavant, la date était représentée par un nombre qui s'incrémentait d'une unité à chaque seconde écoulée depuis le premier janvier 1970. Or, ce nombre, appelé
timestamp, ne peut contenir que 32 chiffres. En 2038, il atteindra son maximum. Les développeurs de Ruby se sont penchés sur ce problème et ont étendu la restriction des dates à avant 1901 et après 2038.
La classe Time a été enrichie de nouvelles méthodes, telles que
to_r, qui renvoie un
nombre rationnel correspondant au nombre de secondes écoulées depuis le timestamp.
Ainsi, le code suivant va renvoyer quelque chose comme :
8807170717088293/8388608.
Code : Ruby1
2 | heureActuelle = Time.now
heureActuelle.to_r
|
Le réseau avec Ruby opérationnel pour IPv6
D'autres soucis seront empêchés notamment celui qui concerne les
IP. Chaque machine connectée au réseau mondial est identifiée grâce à un nombre unique : l'adresse
IP. La version 4 de ce protocole, dévoilée dans les années 70, permet de découper les données qui transitent sur le réseau en paquets, afin de faciliter la transmission de celles-ci. Les adresses de ce protocole sont composées de 4 nombres allant de 0 à 255 séparés par un point. Ainsi,
124.120.15.0 est une adresse IPv4. Or, de plus en plus de machines sont connectées au réseau (ordinateurs,
smartphones, tablettes...) et les IP étant uniques, il ne peut y avoir « que » 4 294 967 296 combinaisons possibles.
Pour pallier une future « pénurie » d'adresses IP, un nouveau protocole, IPv6, a été imaginé.
Dans cette convention, les adresses sont représentées par un
nombre hexadécimal et on compte plus de 667 132 000 milliard de combinaisons par millimètre carré de la surface de la Terre !
Afin de s'adapter, Ruby a récrit son API réseau en accord avec ce nouveau protocole, qui commence à faire son apparition.
Manipulation aléatoire des nombres
Une nouvelle classe,
Random, voit le jour avec Ruby 1.9.2 et permet de générer des nombres aléatoires.
Code : Ruby1
2 | nombre = Random.new()
nombre.rand(0..100) # on tire un nombre au hasard entre 0 et 100
|
Encodage
L'encodage des caractères permet de définir de quelle façon ils vont s'afficher. Par exemple, l'absence d'encodage UTF8 provoquera des problèmes d'affichage des caractères accentués.
Encoding, une classe qui permet de gérer les caractères « exotiques », supporte dans cette nouvelle version de Ruby de nombreux autres caractères orientaux.
Code : Ruby1
2
3
4
5
6 | chaine = "Gérard"
# Cette chaîne va poser un problème à cause de l'accent.
# Pour que tout s'affiche bien, on l'encode en UTF8 :
chaine.encode("UTF8")
|
Mathématiques
Ruby 1.9.2 complète aussi sa bibliothèque mathématiques : la classe
Matrix permet par exemple de générer des matrices. Elle a été enrichie par de nouvelles méthodes telles que
empty?, qui vérifie si la matrice est vide. La méthode renvoie
true si la matrice est vide ou
false dans le cas échéant.
Par exemple, ce code va générer cette matrice :

.
Code : Ruby1 | Matrix[ [25, 93], [-1, 66] ]
|
On peut très facilement tester notre matrice :
Code : Ruby1
2
3 | matrice = Matrix[ [25, 93], [-1, 66] ]
matrice.empty?
|
Qui affichera dans ce cas :
false.
Les structures de données
Des méthodes ont également été rajoutées sur plusieurs structures de données. Les tableaux, gérés par la classe
Array sont plus facilement manipulables grâce à
select!, par exemple.
Du côté des énumérations, sous la tutelle de la classe
Enumerable, on note l'arrivée de
each_entry, qui permet de manipuler plus aisément les données d'une collection.
Les expressions régulières
Les expressions régulières (REGEX) peuvent permettre de traiter un texte. Les propriétés Ruby de ces REGEX sont désormais insensibles à la casse. Cela signifie que l'expression peut être écrite avec ou sans espace, en majuscule ou en minuscule : Ruby comprendra la même chose !
Auparavant, il fallait rajouter à sa regex l'option
/i pour que le tout soit insensible à la casse. C'est désormais automatique.
Ruby continue donc son évolution, en prenant compte des futurs changements de l'ère informatique. Les développeurs comptent d'ailleurs sur la communauté d'utilisateurs pour
faire des suggestions et rapporter les éventuels bugs.
Une coïncidence
Le 19 août 2010 (date de l'annonce de Ruby 1.9.2), la bibliothèque libre
Shoes est passée en version 3. Shoes est écrit en Ruby et facilite la création de fenêtres. On trouvera
ici une liste d'applications réalisées en Ruby avec cette bibliothèque. Shoes est désormais compatible avec Ruby 1.9.1 et Mac OS X Snow Leopard et la stabilité a en outre été améliorée.
Le « Whyday »
Le 19 août 2009,
Why the Lucky Stiff, une des personnes les plus connues de la communauté Ruby, s'est retirée de celle-ci. Il est notamment populaire pour son «
Why's Guide to Ruby », un tutoriel sur le Ruby, et «
Try Ruby », un site internet qui permet de tester Ruby directement sur votre navigateur, ne nécessitant aucune installation préalable.
Une année après son retrait, le 19 août 2010, nous avons fêté le « Whyday », célébré en hommage à son fantastique travail. Plus d'informations sur
le site de Whyday.
En savoir plus...
71 Participations
Connectez-vous !
Connectez-vous !
Revenir à la liste des news