Langage de programmation Ruby

Langage de programmation Ruby

Ruby

Page d'aide sur l'homonymie Pour les articles homonymes, voir Ruby (homonymie).
Ruby-logo-notext.png

Apparu en 1995
Auteur Yukihiro Matsumoto
Développeurs Yukihiro Matsumoto et des contributeurs
Dernière version 1.9.1[1] (le 30 janvier 2009) [+/−]
Paradigmes Objet, impératif, concurrent, fonctionnel
Typage Fort, dynamique
Influencé par Perl, Smalltalk, Python, Lisp, Dylan et CLU
A influencé Groovy, Perl 6
Implémentations Ruby, YARV, JRuby, XRuby, Rubinius, Cardinal, Gardens Point Ruby.NET, IronRuby
Système d'exploitation Multiplate-forme
Licences Licence Ruby et GPL
Site Web ruby-lang.org

Ruby est un langage de programmation libre. Il est interprété, orienté objet, et multi-paradigme.

Le nom Ruby n'est pas un acronyme mais un jeu de mots avec le langage informatique Perl[2].

Sommaire

Historique

Yukihiro "Matz" Matsumoto est le créateur de Ruby. Ne trouvant pas dans les langages de programmation déjà existants (dont Perl et Python) de quoi le satisfaire, il commença l'écriture en 1993 et publia une première version en 1995. Depuis, les versions se sont enchaînées, généralement pour Noël[3].

Les changements de version majeurs ont eu lieu[4] :

La dernière version stable est la 1.9.1, publiée le 30 janvier 2009[6].

Depuis l'arrivée d'une documentation anglophone, et du framework web Ruby on Rails, Ruby connaît un certain engouement, qui ne cesse de croître dans le monde de la programmation[7].

Philosophie

Ruby est fortement orienté objet et se rapproche ainsi du paradigme objet de Smalltalk[8] :

Malgré cet aspect exclusivement objet, la programmation procédurale est possible et fréquente. Ruby utilise une syntaxe simple, inspirée par Eiffel et Ada[9].

Le langage est souvent présenté comme évitant au maximum les mauvaises surprises, selon le principe de moindre surprise[10]. Mais puisqu'il n'est pas possible d'éviter la surprise de tous les utilisateurs, Yukihiro Matsumoto précise qu'il cherche surtout à éviter sa propre surprise[11]. Ainsi plus on connaît le langage, plus on connaît la logique de son auteur et moins on s'étonne des fonctionnalités qu'on découvre.

Fonctionnalités

Les fonctionnalités principales sont :

Implémentations

L'interpréteur officiel fonctionne sur de nombreux systèmes d'exploitation : UNIX, Linux, Microsoft Windows, DOS, Mac OS X, OS/2, Amiga, etc. Il est publié sous la double licence libre GNU GPL et la licence Ruby[13].

Ruby est fourni avec irb, un interpréteur de commandes interactif pour tester en profondeur le fonctionnement du langage. Il existe une version web d'irb pour tester Ruby dans un navigateur[14].

Depuis le 1er janvier 2007, le développement de Ruby (1.9) est basée sur l'interpréteur YARV écrit par Koichi Sasada[15]. Ce nouvel interpréteur apporte un gain notable en performances[16].

Il existe plusieurs autres interpréteurs Ruby[16] :

JRuby[17] 
Il est écrit en Java et interprète directement du code source écrit en Ruby.
XRuby 
Il convertit du code Ruby en code Java et est plus rapide sur certains tests de performance que la version 1.8.5 de l'interpreteur officiel[18].
Rubinius 
Une machine virtuelle simplifiée, inspirée de Smalltalk-80[19], implémentée en Ruby même.
Cardinal[20] 
Un interpréteur fonctionnant sous Parrot.
Gardens Point Ruby.NET 
Un interpréteur fonctionnant sur le framework .NET[21].
IronRuby 
Un compilateur fonctionnant sur la DLR du framework .NET[22].
Ruby for .Net 
Un compilateur fonctionnant sur la CLR du framework .NET qui a été abandonnée au profit de IronRuby.

Interprètes embarqué

Ruby possède une interface de programmation en langage C qui lui permet d'être intégré au sein d'autres logiciels. Ruby est notamment utilisable dans :

Le logiciel de création de jeu vidéo RPG Maker intègre dans ses versions XP et VX un langage de programmation issu de Ruby et nommé RGSS, Ruby Game Scripting System.

Bibliothèques

Il existe de nombreuses bibliothèques de fonctionnalités adjoignables au langage. Le dépôt historique de ces bibliothèques est le Ruby Application Archive (RAA)[23]. Il contient des fonctionnalités supplémentaires pour Ruby comme des bibliothèques de classes et de modules, mais aussi des extensions permettant d'utiliser des bibliothèques tierces.

Le RAA contient également des logiciels écrits en Ruby. Parmi ces logiciels on trouve notamment Rubygems qui est un outil d'empaquetage et d'installation pour les extensions Ruby[24]. Il permet de déployer rapidement des bibliothèques et des programmes Ruby.

Le site web Rubyforge[25] est également un hébergeur important de programmes et de bibliothèques écrites en Ruby.

Exemples

Le classique Hello world :

puts "Hello World!"

Utilisation des objets :

# Tout est objet, même les nombres:
-199.abs                                                # 199
"ruby is cool".length                                   # 12
"Rick".index("c")                                       # 2
"Nice Day Isn't It?".downcase.split(//).sort.uniq.join  # " '?acdeinsty"

Utilisation de Mixin et de l'Héritage

module AnimalSkills
   def eat
      puts "I'm eating !"
   end
 
   def move
      puts "I'm moving !"
   end
 
   def express
      puts "I'm expressing !"
   end
end
 
class Animal
   include AnimalSkills # mixin
 
   @@name = 'an animal' # variable de classe
 
   def initialize(size, weight, color) # initialisation des variables d'instance
      @size = size.to_i
      @weight = weight.to_i
      @color = color.to_s
   end
 
   def describe
      puts "I'm #{@@name} !"
      puts "I'm #{@size.to_s} meter tall, #{@weight.to_s} kilogramms weigh and I'm " + @color
   end
end
 
class Zebra < Animal # héritage
   @@name = 'a zebra' # rédéfinition de la variable de classe
 
   def initialize(size, weight, color = 'black and white') # surchage
      super # appel de la méthode de la classe mère (Animal)
   end
end
 
z = Zebra.new 1, 50
 
z.describe # => I'm a zebra ! / I'm 1 meter tall, 50 kilogramms weigh and I'm black and white
z.eat # => I'm eating !

Voir aussi

Wikibooks-logo-fr.png

Wikibooks propose un ouvrage abordant ce sujet : Ruby.

Articles connexes

Bibliographie

  • (en) Dave Thomas, Andrew Hunt, Programming Ruby, 2000 (ISBN 0-201-71089-7) 
  • (fr) Yukihiro Matsumoto, Ruby in a Nutshell, 2002 (ISBN 2-84177-210-1) 
  • (en) Dave Thomas, Chad Fowler, Andy Hunt, Programming Ruby: The Pragmatic Programmer's Guide , 2004 (ISBN 0-97451-405-5) 
  • (fr) Chris Pine, Débuter en Programmation avec Ruby, 2006 (ISBN 2-74402-078-8) 
  • (fr) Lucas Carlson, Leonard Richardson, Ruby par l'exemple, 2006 (ISBN 978-2-84177-347-3) 
  • (en) Hal Fulton, The Ruby Way, Second Edition: Solutions and Techniques in Ruby Programming (2nd Edition), 2006 (ISBN 0-67232-884-4) 
  • (en) Maik Schmidt, Enterprise Integration with Ruby, 2006 (ISBN 0-97669-406-9) 
  • (en) Brian Marick, Everyday Scripting with Ruby: For Teams, Testers, and You, 2007 (ISBN 978-0-97761-661-9) 
  • (en) Peter Cooper, Beginning Ruby: From Novice to Professional, 2007 (ISBN 978-1-59059-766-8) 

Liens externes

Notes et références

  • Portail de l’informatique Portail de l’informatique
  • Portail des logiciels libres Portail des logiciels libres
  • Portail de la programmation informatique Portail de la programmation informatique

Ce document provient de « Ruby ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Langage de programmation Ruby de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • Langage de programmation Visual Basic — Visual Basic  Cet article concerne le langage Visual Basic, commercialisé avec Microsoft Visual Studio 6.0 et antérieur. Pour la version de Visual Basic commercialisée avec Microsoft Visual Studio .Net, voir Visual Basic .NET …   Wikipédia en Français

  • Langage De Programmation — Un langage de programmation est un langage informatique, permettant à un être humain d écrire un code source qui sera analysé par une machine, généralement un ordinateur. Le code source subit ensuite une transformation ou une évaluation dans une… …   Wikipédia en Français

  • Langage de programmation informatique — Programmation informatique Pour les articles homonymes, voir Programmation (homonymie). La programmation dans le domaine informatique est l ensemble des activités qui permettent l écriture des programmes informatiques. C est une étape importante… …   Wikipédia en Français

  • Langage de programmation — Programme écrit en Perl. Programm …   Wikipédia en Français

  • Langage de programmation Python — Python (langage) Pour les articles homonymes, voir Python. Python …   Wikipédia en Français

  • Langage de programmation C plus plus — C++ Apparu en 1985 (dernière révision en 2003) Auteur Bjarne Stroustrup …   Wikipédia en Français

  • Langage de programmation Assembleur — Assembleur  Cet article concerne le langage d assemblage. Pour le programme produisant un exécutable à partir d un source écrit dans ce langage, voir Programme assembleur. Un langage d assemblage ou langage assembleur ou simplement… …   Wikipédia en Français

  • Langage de programmation assembleur — Assembleur  Cet article concerne le langage d assemblage. Pour le programme produisant un exécutable à partir d un source écrit dans ce langage, voir Programme assembleur. Un langage d assemblage ou langage assembleur ou simplement… …   Wikipédia en Français

  • Langage de programmation dynamique — Cet article traite d une classe des langages de programmation. Pour la méthode consistant en la réduction du temps d exécution d un algorithme, voir programmation dynamique On utilise le terme langage de programmation dynamique en informatique… …   Wikipédia en Français

  • Ioke (langage de programmation) — Pour les articles homonymes, voir Ioke. Ioke est un langage de programmation conçu pour la JVM par Ola Bini, l un des développeurs de JRuby. C est un langage de programmation orientée prototype inspiré par Io, Smalltalk, Lisp et Ruby. Ola Bini… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”