J’ai eu l’occasion de tester Ruby, un langage de programmation assez intéréssant, voici un petit résumé des concepts sympatiques de Ruby.

Une syntaxe légère

La syntaxe du langage est en effet particulièrement sobre et légère, tout en gardant une expression riche.

# Pas de ; ou d'accolads à tour de bras
class Greeter
    def initialize
        # Les attributs préfixés de "@"
        @name = "Jacques"
    end
    # Parametres optionels
    def say_hi (who = "World")
        puts "Hello #{who} je suis #{@name} !"
    end
end

# Simple instance et appel de fonction
g = Greeter.new
g.say_hi "Paul"

On ne peut que reconnaitre la legereté d’écriture, notament:

  • L’absence de points virgules
  • L’absence des accolades (le mot clé end servant de séparateur)
  • La possibilité d’omettre les parentheeses lors d’un appel de fonction, meme en lui passant des arguments
  • Les variables non préfixées comme dans php (avec son $ eternel)

Un langage multi-paradigmes

Ruby offre un grand nombre de possibilités en couvrant plusieurs paradigmes de programmation:

 #Tout est objet dans Ruby
-3.abs #3

# Les tableaux nativement gérés
[1,2,4,6].include?(2) #true

# Les opérateurs surchargeables
[1,2]+[3,4] #[1, 2, 3 ,4]

# Ecriture de classes rapide
class Essay
    def test
        puts "Hi"
    end
end

# Instanciation a la volée
Essay.new.test

# Omission du return, la derniere expression
# evaluee est retournée
def foisdeux (x)
    2*x
end

# Egalement possibilité d'utiliser des fonctions
# anonymes (lambda-calcul)
[1,2,3,4,5].select {|x| x%2==0} #[2, 4]

lambda {puts "Hello"}.call #Hello

# Possibilité d'étendre les classes existantes
class String
    def startwith (s)
        self[0,s.length]==s
    end
end     

"tototiti".startwith("erk") #false
"tototiti".startwith("tot") #true

Il y a beaucoup de calcul « anonymes » (fonctions écrites à la volées et a durée de vie éphémère)

En résumé le langage est assez convivial, surtout très esthétique je dirais (pas forcément extrêmement évident pour un premier langage par exemple, mais très compréhensible à la lecture). Les itérations à tour de bras et les fonctions « à la volée » permettent une bonne clarté et une bonne lisibilité.