Articles précédents : Logiciel
- [7] Nouvelle distribution beta de RedHat
- [1] Disciples 2: Dark Prophecy annoncé sous Linux, et du nouveau concernant Majesty Gold
- [50] KiSS DP-450 : un lecteur de DVD de salon avec un pingouin dedans !
- [15] SmoothWall GPL 1.0 est disponible
- [3] Pike 7.4
- [29] Rise of the Triad sous GPL
- [50] slicKer
- [57] Pourquoi utiliser OpenOffice.org
- [30] Base de données matériel sur Knoppix
- [0] xine en version 1.0 bêta
Liens connexes
- l'annonce (411 hits)
- Ruby 1.6.8 (433 hits)
- Ruby 1.8.0 (508 hits)
- Le site du langage (3294 hits)
- Le livre de référence en ligne (494 hits)
Dépêche modérée par
Logiciel : Nouvelles versions de Ruby
Posté par Cédric Foll (page perso, ). Modéré le 24 décembre 2002.Pour ceux qui n'ont pas encore la chance de connaitre Ruby, c'est un langage de script simple et puissant comme Perl et orienté objet.
l'annonce (411 hits)
Ruby 1.6.8 (433 hits)
Ruby 1.8.0 (508 hits)
Le site du langage (3294 hits)
Le livre de référence en ligne (494 hits)
> Lire la suite (16 commentaires, moyenne: 6,3). [dépêche : 2243 caractères]
Ruby est un langage récent (sa première version publique date de 1995). Il a été développé au Japon par Yukihiro Matsumoto, alias «Matz». Celui ci ne trouvant pas dans les langages de scripts disponibles (Perl et Python en particluier) un que le satisfasse, aussi il décida d'en créer un. Il cherchait un langage alliant la puissance de Perl à un model Objet Pure (celui de Python n'étant pas satisfaisant). Le langage allie des fonctionnalités héritées de divers langages tels que la manipulation de texte de Perl, le modèle objet de SmallTalk, une syntaxe très claire similaire à Eiffel, ...
Voici un petit résumé des fonctionnalités intéressantes de Ruby:
Interprété. Le développement plus rapide, pas de phase de compilation.
Pure Objet. Tout ce que l'on manipule est est un objet. Il est néanmoins possible de programmer de manière procédurale et de presque oublier cette particuliarité.
Non typé. Le type des variables est déterminé pendant l'éxécution. Ceci permet d'écrire du code génirique sans avoir à se soucier du type de donnée que l'on manipule.
Gestion automatique de la mémoire. C'est l'interpréteur qui se charge d'allouer de la mémoire lors de la création d'objets, il gére aussi leur destruction (garbage collector).
Possibilité de passer un bloc d'intructions en paramètre d'une méthode.
Gestion des processus, signaux, threads, mutex, ...
Librairie TCP/IP très puissante.
Surcharge des opérateurs.
Disponible sur un grand nombre de plateformes (Unix, Windows, Dos, Amiga, ...)
Ruby est un langage extremment bien pensé et cohérent , il obéit au principe de la «moindre suprise» (Principle of Least Surprise), c'est à dire que le langage est conçu pour se comporter de la manière attendue. La syntaxe simple fait que l'on n'est pas surchargé de message d'erreurs lors de l'exécution (contrairement aux compilateurs C/C++ ou Java pour ne citer qu'eux), la gestion de structures de données complexes (de type tableaux de tableaux) est bien plus simple qu'en Perl et la gestion automatique de la mémoire évite bien des problèmes. Ruby permet de se concentrer sur l'aspect créatif de la programmation sans avoir à se soucier des complexités du langage.
Re: Nouvelles versions de Ruby
Pour ceux qui connaissent python et pas Ruby, une petite comparaison.
http://www.thinkware.se/cgi-bin/thinki.cgi/RubyVsPython(...)
Deux beaux langages de script somme toute.
-
[^]Re: Nouvelles versions de Ruby
Posté par wilk (Jabber id, page perso, ) le 24/12/2002 à 17:29. (lien). Évalué à 7.Attention à ne pas confondre langage de script avec langage éventuellement utilisé pour du script. Ce serait dommage de les enfermer dans un domaine aussi restreint !
Re: Nouvelles versions de Ruby
Quelques sites en français :
- http://perso.wanadoo.fr/alain.feler/(...) le guide de l'utlisateur en français
- http://www.approximity.com/ruby/ruby_fr/siframes.html(...)
- http://myruby.ifrance.com/myruby/(...)
-
[+] [^]Re: Nouvelles versions de Ruby
Posté par analogue o/ (page perso, ) le 26/12/2002 à 17:21. (lien). Évalué à -7.--
Votez contre le cinéma sur DLFP: http://linuxfr.org/tracker/296.html
Le lien pour voter est en haut à droite.-
[^]Re: Nouvelles versions de Ruby
Posté par lorill (page perso, ) le 26/12/2002 à 19:46. (lien). Évalué à 4.existe plus depuis belle lurette
-
Re: Nouvelles versions de Ruby
Pure Objet. Tout ce que l'on manipule est est un objet. Il est néanmoins possible de programmer de manière procédurale et de presque oublier cette particuliarité.
Et Ruby transformera tout le procédural en mèthodes s'appliquant à un objet global ;)
-
[^]Re: Nouvelles versions de Ruby
Posté par Cédric Foll (page perso, ) le 24/12/2002 à 16:05. (lien). Évalué à 10.En Ruby on est par défaut dans la classe 'main', les "fonctions" sont en fait des méthodes de cette classe. De même les "variables" sont les attributs de cette classe "main".
En Python (moins propre) les fonctions sont des instances d'une classe fonction. Cette classe surcharge l'opérateur ().
Quand on fait en Python fun(var), on fait en fait fun.()(var) (fun est une instance de classe fonction, on appelle la méthode () en lui passant var en parametre). (enfin c'est ce que j'ai compris, je ne maitrise pas particulierement ce langage).
Quand on fait en Ruby fun(var), on fait en fait main.fun(var).-
[^]Re: Nouvelles versions de Ruby
Posté par lorill (page perso, ) le 25/12/2002 à 19:01. (lien). Évalué à 6.main ?? ca rajoute une méthode privée dans Object plutot, non ?
-
[^]Re: Nouvelles versions de Ruby
Posté par Cédric Foll (page perso, ) le 25/12/2002 à 22:26. (lien). Évalué à 6.Oui, exacte (mais bon comme main est une instance de classe et que toute classe hérite d'Object à un moment ou un autre on ajoute au final une méthode à main):
$cat > test.rb
def hello
puts "hello"
end
p self.private_methods.grep "hello" #self c'est "main"
p Object.private_methods.grep "hello"
^D
$ruby test.rb
["hello"]
["hello"]
On a raison tout les deux. (je suis limite de mauvaise foi je sais ...)
-
-
Taduction du Perl Cookbook de O'reilly
Voici un projet intéressant auquel je participe: http://pleac.sourceforge.net/.(...)
Ce projet a pour but de traduire le livre "Perl Cookbook" ("Perl en action" dans sa version française) dans différents langages de programmation.
Pour ce qui ne connaissent pas ce livre, il s'agit d'un recueil de recettes (comment faire tel ou tel truc en Perl ?).
Le but de site est de traduire les recettes Perl dans différents langages de programmations (Python, Ruby, guile, ...).
Environs 40% des recettes ont été trdauites en Ruby, il reste du boulot pour les amateurs.
-
[^]Re: Taduction du Perl Cookbook de O'reilly
Posté par Pierre () le 27/12/2002 à 00:57. (lien). Évalué à 2.Tu saurais pourquoi il n'y a pas PHP ?
-
[^]Re: Taduction du Perl Cookbook de O'reilly
Posté par Cédric Foll (page perso, ) le 29/12/2002 à 15:30. (lien). Évalué à 2.J'imagine que c'est parce que personne ne participant au projet n'a envie d'écrire du code PHP. Tu peux t'y mettre si tu veux. Toute contribution est la bien venue.
-
Re: Nouvelles versions de Ruby
> La syntaxe simple fait que l'on n'est pas surchargé de message d'erreurs lors de l'exécution (contrairement aux compilateurs C/C++ ou Java pour ne citer qu'eux)
D'un autre côté, un ingé qui essayait récemment de montrer les bases du C++ dans mon assoc' (salut, Denis :-) expliquait pour sa part que le grand nombre de messages d'erreur du compilo C++ était une bonne chose, car ils étaient affichés à la compilation (et non à l'exécution, comme le dit l'auteur de l'article), ce qui permettait (justement) de minimiser les problèmes à l'exécution, en faisant du code plus robuste dès le départ. Personnellement, je n'ai pas été très convaincu (je pense qu'une syntaxe simple évite au débutant la plupart des chausse-trappes qui nécessiteraient de telles vérifications en profondeur), mais ça montre qu'il y a des arguments pour et contre. Pour ma part, j'aime bien que (le compilo|l'interpréteur) vérifie un minimum ce que j'ai pondu. En Perl, je mets toujours l'option `-w' et le drapeau `use strict;', par exemple...
--
WSA
Noyeux Joël à tous les dyslexiques !
Ce message vous a été présenté par les trollomètres de compétition Prumpleffer™
Re: Nouvelles versions de Ruby
Exite-t-il un comparatif des languages de script objet, tels que pike, python, ruby et les autres (j'en oublie certainement !)
Cela permettrait de savoir quel language est adapté à des besoins spécifiques d'une application.
On pourrait comparer les performances, les OS supportés, les blibliothèques intégrées, licenses, etc...
Cette profusion de languages de script n'entraine-t-elle pas un ambaras (du choix) pour celui qui veut commencer une application en script ?
-
[^]Re: Nouvelles versions de Ruby
Posté par manatane () le 26/12/2002 à 07:59. (lien). Évalué à 11.Exite-t-il un comparatif des languages de script objet, tels que pike, python, ruby et les autres (j'en oublie certainement !)
tu as l'excellent http://www.bagley.org/~doug/shootout/(...)
et aussi :
- http://www.ruby-lang.org/en/compar.html(...)
- http://www.python.org/doc/Comparisons.html(...)
Cette profusion de languages de script n'entraine-t-elle pas un ambaras (du choix) pour celui qui veut commencer une application en script ?
Pas vraiment AMHA : bien que Perl, Ruby et Python soient comparables en terme de performances et de fonctionnalités, chacun possède ses propres petites caractéristiques qui font qu'on les adoptera plutôt qu'un autre selon le developpement à faire ou tout le temps ;) :
- le symbole de Perl est le chameau : il travaille dur et bien dans toutes les situations mais il n'est pas beau et parfois il crache à la figure (quand on relie son code par exemple :)
- Python est beaucoup plus joli mais oblige à une identation très stricte ce qui peut provoquer des erreurs quand tu fais un copier coller (même si le copier coller c'est pas conseillé...)
- Quant à Ruby j'ai 37 raisons de l'aimer : http://www.hypermetrics.com/ruby37.html(...) ;)



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.