articles/rebol_vs_ruby.txt · Dernière modification: 18/11/2005 12:59

EN: rebol.com - rebol.org - rebol.net -
FR: Rebol Documentation Project - forum RebelBB - rebol-france.org - forum codeur -

 

Cette page, pour réaliser une traduction, voir une ammélioration de ce magnifique post de Gregg

Post du forum associé : http://www.codeur.org/forum/message.php?ID_Sujet=3343


PC> I would like to ask if anyone could give a brief summary PC> of what’s the difference between Rebol and Ruby.

Ruby is a programming language for programers. REBOL is a language used to exchange information; sometimes that information is a script for the computer to execute.

Ruby has ~40 reserved words. REBOL has none.

Ruby has ~7 datatypes. REBOL has 30+. Ruby has a number of standard classes for things that REBOL does not (e.g. bignums).

Some things that are built into REBOL, e.g. net access, are available as Ruby libraries.

Ruby is case sensitive and uses sigils. REBOL is not case sensitive, and words (variables) can contain all but a few special characters.

Ruby has cool block and iterator support, making it more dynamic than some other programming languages. In REBOL, everything is data. Evaluating data can make you think it’s code you’re writing.

Ruby is pure OO, and has mixins rather than multiple inheritance. REBOL creates objects from prototypes. An object in REBOL provides context and acts as a namespace.

With Ruby, you have to write in an OO manner (obj.method). REBOL was designed to build dialects that let you express things any way you want.

Ruby has special built-in vars like Perl; REBOL does not.

Ruby has regexes; REBOL has the PARSE function.

The Pragmatic Programmers.

Ruby has a standard debugger and profiler; REBOL does not.

REBOL has built-in HELP and SOURCE functions, including full support for reflection with doc-strings. Ruby uses a separate tool to extract embedded documentation written in a lightweight text markup format.

You can write Ruby extensions in C; REBOL can call DLLs.

Ruby on Rails. Rebcode.

REBOL/View has a built-in GUI system (full 32-bit compositing for every face, 14+ pipeline effects, AGG draw engine). Ruby needs to use something like Tcl/Tk for GUIs.

Ruby is more popular than REBOL, and seems to be growing faster.

REBOL can create standalone EXEs that have no external dependencies.

A zipped REBOL/Core is a ~190K download; ~350K for View. The one-click Ruby installer for Windows is ~14.8M (it contains extras like Tcl/Tk).

It’s not easy to compare REBOL with programming languages, though it can hold its own on their turf. You’re comparing apples and oranges to a great extent. You really need to compare REBOL to Ruby+XML, for example.

Ruby is a blend of ideas from other programming languages, with some new bits thrown in (no offense meant to Matz; Ruby is what I might be using if not for REBOL). REBOL is different; really different; and we don’t know how to exploit it fully yet.

Ruby is meant for programmers; REBOL is meant for humans. So, Ruby is better if you’re coming from Perl or an OO mindset and don’t want to stretch your mind too much; just get things done in a language that’s similar to what you know, with a few new twists.

REBOL is great if you want to stretch your mind and learn to think in new ways. It’s also an excellent choice if you want to build Domain Specific Languages (DSLs), which have been around a long time, but are one of the “new” trends on the horizon from MS and others. REBOL’s built-in GUI system is also a standout feature, as is its small size.


Traduction

N’hésitez pas à y apporter vos corrections !

Ruby est un langage de programmation destiné aux programmeurs. REBOL est un langage utilisé afin d’échanger de l’information. Et parfois, cette information est un script que l’ordinateur doit exécuter.

Ruby a environ 40 mots réservés. REBOL n’en a pas.

Ruby a environ 7 types de données. REBOL en a plus de 30. Contrairement à REBOL, Ruby dispose de nombreuses classes standards (p.e bignums).

Certaines fonctionnalités qui sont intégrées à REBOL (par exemple l’accès au réseau), ne sont disponibles que comme librairies pour Ruby.

Ruby est sensible à la casse et utilise des signets (NdT: je n’en ai pas retrouvé trace dans la doc de Ruby, et je ne vois pas par quoi d’autre le traduire: sigil = “A seal, a signet or A sign or an image considered magical”). REBOL n’est pas sensible à la casse et les mots (variables) peuvent contenir tous les caractères à l’exception de quelques cas particuliers.

Ruby supporte un système de blocs et d’itérateurs très pratique. En REBOL, tout est donnée. L’évaluation d’une donnée peut vous faire penser que vous êtes en train d’écrire du code.

Ruby est purement orienté objet et a des “mixins” (NdT: inclusion d’un module dans la définition d’une classe) plutôt qu’ un système d’héritage multiple. REBOL crée des objets à partir de prototypes. Un objet en REBOL fourni un contexte et agit comme un espace de nommage.

En Ruby, vous devez programmer en orienté objet (méthode d’objet). REBOL a été conçu afin de vous laisser exprimer des concepts de la manière que vous le désirez.

Ruby a des variables incluses spéciales, comme Perl. REBOL n’en a pas.

Ruby dispose d’expressions régulières (NdT: “regexes”). REBOl utilise la fonction PARSE.

Du point-de-vue du programmeur pragmatique

Ruby dispose d’un débogueur et d’un profileur en standard. REBOL n’en a pas.

REBOL dispose d’une fonction d’aide (NdT: “HELP”) intégrée et d’une fonction permettant de visualiser les sources du code (NdT: “SOURCE”), avec le support de la réflexion (chaînes de documentation). Ruby utilise un outil séparé afin d’extraire la documentation incluse, qui est écrite dans un langage de formatage de texte léger.

Vous pouvez écrire des extensions de Ruby en C. REBOL peut faire appel à des DLL.

Comme fonctionnalité particulière, Ruby dispose de “Ruby on Rails” (NdT: un framework de développement, voir rubyonrails). REBOL dispose du Rebcode (NdT: une sorte de bytecode pour REBOL, dont l’évaluation est jusqu’à 58 fois plus rapide, voir le blog de Carl).

NdT: la traduction du paragraphe précédent a été adaptée selon les dernières informations provenant de la mailing-list.

REBOL/View a un système intégré de création d’interface utilisateur (composition en plein 32-bit pour chaque face, plus de 14 effets pipeline, engin de dessin AGG). Ruby doit utiliser un produit comme Tcl/Tk pour les interfaces utilisateur.

Ruby est plus populaire que REBOL, et semble évoluer plus rapidement.

REBOL peut créer des exécutables sans dépendances externes.

Le REBOL/Core compressé ne prend que environ 190K. 350K pour View. L’installateur de Ruby pour Windows pèse environ 14.8M (il contient certains extra comme Tcl/Tk).

Il n’est pas facile de comparer REBOL avec un langage de programmation, bien qu’il se défende sur ce terrain. C’est comme comparer des poires et des pommes… Il est vraiment nécessaire de comparer REBOL à Ruby+XML par exemple.

Ruby est un mélanges d’idées provenant d’autres langages de programmation, avec quelques nouveautés (sauf le respect de Matz. Ruby est ce que j’utiliserai si REBOL n’existait pas). REBOL est différent, et nous ne savons pas encore comment l’exploiter pleinement.

Ruby est destiné aux programmeurs. REBOL est destiné aux humains. Ruby est meilleur si vous venez de Perl ou du monde orienté objet, et si vous ne voulez pas trop torturer votre esprit. Faites simplement les choses dans un langage similaire à ce que vous connaissez, avec quelques nouveautés.

REBOL est parfait si vous souhaitez assouplir votre esprit et apprendre à penser d’une nouvelle manière. C’est également un excellent choix si vous désirez construire un langage spécifique à un domaine (NdT: “Domaine Specific Langage - DSL”). Ce concept existe déjà depuis longtemps, mais est devenu une nouvelle mode dans le collimateur de MS et d’autres. Le système d’interface utilisateur intégré de REBOL, ainsi que sa petite taille, sont aussi des atouts non négligeables.


Christophe "REBOLtof" Cousssement 06/11/2005 10:30 traduction initiale

Christophe "REBOLtof" Cousssement 08/11/2005 12:21 Corrections de qq typos

Christophe Cousssement 18/11/2005 12:58 Exportation vers RebDocProj

 
  articles/rebol_vs_ruby.txt · Dernière modification: 18/11/2005 12:59
 
Fil RSS: Recent changes RSS feed
Valid XHTML 1.0 Valid CSS Powered by PHP Driven by DokuWiki
Hébergement par Spinodo