Ruby vs Python

fredericmazue
Ruby vs Python

Bonjour à tous,

J'aimerais lancer un petit débat Python contre Ruby. Les deux sont valables on le sait :) Mais j'aimerais connaître vos arguments en faveur de votre langage préféré :)

ca
Re: Ruby vs Python

fredericmazue wrote:
Bonjour à tous,

J'aimerais lancer un petit débat Python contre Ruby. Les deux sont valables on le sait :) Mais j'aimerais connaître vos arguments en faveur de votre langage préféré :)

Bonjour à tous,

Je n'ai pas une pratique intense de ces deux syntaxes.

Mais ma petite expérience me ferait pencher pour Ruby.

Python se veut proche d'un Lisp sans en avoir ni les performances ni l'étendu des capacités. Son avantage est d'avoir une syntaxe plus classique que le Lisp, enfin plus 'notion algébrique'.

Quant à Ruby, c'est un bon Smalltalk léger. Il est facile d'accès et assez intuitif pour des débutants. Les performances ne sont pas très bonnes, par contre.

Mais dans les deux cas, la malédiction demeure : réinventer en moins bien des langages existants.

Bien cordialement,

Christophe

fredericmazue

Quote:
Python se veut proche d'un Lisp

Il me semble que Ruby emprune lui aussi beaucoup à Lisp, aux dires mêmes de son concepteur. Il me semble avoir lu ça quelque part. Par contre il est vrai que Ruby est clairement influencé par Smalltalk, ce qui n'est pas le cas de Python. en effet.

Quote:
Mais dans les deux cas, la malédiction demeure : réinventer en moins bien des langages existants.

:lol:
C'est tellement vrai.
Alors tiens étendons la discussion. Quel est est pour toi le langage existant qui est mieux ? Lisp sans doute ?
ca

fredericmazue wrote:
Quote:
Python se veut proche d'un Lisp

Il me semble que Ruby emprune lui aussi beaucoup à Lisp, aux dires mêmes de son concepteur. Il me semble avoir lu ça quelque part. Par contre il est vrai que Ruby est clairement influencé par Smalltalk, ce qui n'est pas le cas de Python. en effet.

Quote:
Mais dans les deux cas, la malédiction demeure : réinventer en moins bien des langages existants.

:lol:
C'est tellement vrai.
Alors tiens étendons la discussion. Quel est est pour toi le langage existant qui est mieux ? Lisp sans doute ?

Il faut d’abord définir ce qu’est un langage.
Littéralement, c’est un moyen d’expression. Prenons exemple sur la langue Française, en lisant un dictionnaire on découvre que les mots Français sont définis en langue Française.
On peut atteindre ce même niveau d’expression avec des langages informatiques. A savoir : définir ou redéfinir tout ou partie du langage lui-même. Ex : macro en Lisp, système objet homogène type Smalltalk, voire les directives de compilation d’un bon vieux Nantucket/Clipper, fameux fichier .ch. Il y a d’autres exemples.

En ce qui concerne Python et Ruby, cette capacité n’est pas réellement présente, pas de façon aussi clairement formalisée et intégrée.

Mais c’est mieux que le GW-Basic, c’est évident.

Ceci énoncé, peu de langage peuvent se targuer à la fois d’être un vrai langage, rivaliser avec la vitesse du C++, offrir un moyen d’extension cadré style macro et posséder une maturité sans égale avec une offre commerciale et open source riche.

Bien cordialement,

Christophe

fredericmazue

D'accord sur tout :)

Quote:
Ceci énoncé, peu de langage peuvent se targuer à la fois d’être un vrai langage, rivaliser avec la vitesse du C++, offrir un moyen d’extension cadré style macro et posséder une maturité sans égale avec une offre commerciale et open source riche.

Oui on parle de Lisp là, pas de doute :)
Ah Lisp.... On en a parlé souvent sur ce forum. Il est parfois vu comme un dinosaure, alors qu'à mon humble avis, c'est un langage qui est encore en avance sur son temps :)

Tiens et j'ajouterai même: un langage standard, avec une librairie graphique standard (CLIM) ce qui est sauf erreur ou omission de ma part, unique. :)

ca

fredericmazue wrote:
D'accord sur tout :)

Quote:
Ceci énoncé, peu de langage peuvent se targuer à la fois d’être un vrai langage, rivaliser avec la vitesse du C++, offrir un moyen d’extension cadré style macro et posséder une maturité sans égale avec une offre commerciale et open source riche.

Oui on parle de Lisp là, pas de doute :)
Ah Lisp.... On en a parlé souvent sur ce forum. Il est parfois vu comme un dinosaure, alors qu'à mon humble avis, c'est un langage qui est encore en avance sur son temps :)

Tiens et j'ajouterai même: un langage standard, avec une librairie graphique standard (CLIM) ce qui est sauf erreur ou omission de ma part, unique. :)

On peut aussi citer les Smalltalk : VisualWorks, Object Studio, Squeak, Smalltalk X, VisualAge Smalltalk tousjours actif avec Instanciations, Smalltalk MT une bombe sur le plan de la vitesse d'exécution, et j'en oubli bien trois ou quatre ...

Sinon, hormis le problème des performances, quoique aussi bonnes que Ruby ou Python de base, nous avons le tueur sémantique : Rebol.
Sans équivalent sur la marché, si les performances s'améliorent significativement comme cela est annoncé avec une gestion du multi-tache, il sera LE langage. Un vrai langage.

Rebol c'est exactement ce à quoi devait réver les créateurs de Python, Ruby, et bien d'autres petits nouveaux dans le genre, sans jamais pouvoir rivaliser avec la puissance sémantique de Rebol.

En Python, c'est cela que je préfère : http://common-lisp.net/project/clpython/ :wink:

Bien cordialement,

Christophe

fredericmazue

Hum j'ignorais que Squeak fut normalisé ANSI (c'est ce que je veux dire pas standard) ou même "Smalltalk ANSI compliant"

Sérieusement, il y a une librairie graphique Smalltak standard ? Peux tu dissiper mon ignorance crasse à ce sujet ?

Je suis assez d'accord pour Rebol. Ce qui lui a manqué est surtout d'être ouvert pour pouvoir devenir populaire. Mais je crois que Rebol est ouvert maintenant ? Je me trompe ?

Quant à clpython ça montre une nouvelle fois, si besoin était, que Lisp permet de tout implémenter :)

ca

fredericmazue wrote:
Hum j'ignorais que Squeak fut normalisé ANSI (c'est ce que je veux dire par standard) ou même "Smalltalk ANSI compliant"

Sérieusement, il y a une librairie graphique Smalltak standard ? Peux tu dissiper mon ignorance crasse à ce sujet ?

Je suis assez d'accord pour Rebol. Ce qui lui a manqué est surtout d'être ouvert pour pouvoir devenir populaire. Mais je crois que Rebol est ouvert maintenant ? Je me trompe ?

Quant à clpython ça montre une nouvelle fois, si besoin était, que Lisp permet de tout implémenter :)

Smalltalk est en cours de normalisation; je subodore que cela va prendre beaucoup de temps vu le rythme actuel.

Concernant les IHM, Smalltalk a juste introduit le principe de notification, et proposé le modèle MVC. Mais, effectivement, il n'y a pas de librairie standard. Une convergence vers CAIRO n'est pas impossible.

Le noyau Rebol reste la propriété de Rebol, et c'est très bien ainsi.
Le reste autour est ouvert ... pourquoi pas.

Bien cordialement,

Christophe

fredericmazue

Tiens au fait Christophe....

Tu sais sans doute que Programmez! offre 100 chaque mois à l'auteur du meilleur tutoriel sur notre site

Un bon tutoriel bien visuel sur Squeak ça serait vachement classe à mon avis. Que dirais tu de tenter ta chance ?

Et si un autre sujet que Squeak t'inspire, faut surtout pas t'en priver :)

kib2

Salut,

Comme finalement on parle de Lisp ici...ça vient de sortir :

http://www.lispforum.com/index.php

fredericmazue

Il ne fonctionne pas ce lien...

kib2

fredericmazue:

Je viens de le tester et il fonctionne très bien chez moi.

fredericmazue

En effet il fonctionne maintenant. Le serveur a du être indisponible juste au moment où j'ai essayé.

loic.guillois_4127

c'est un peu un troll ce topic mais bon :)

Python c'est bien. Ruby c'est mieux. ... mais Groovy c'est le meilleur :)

Python est bien pour le script, Ruby est plus adapté au web ... encore que.

Je pense que c'est juste une question de gout, personnellement la syntaxe de Python je n'aime pas et puis Ruby à l'avantage d'avoir avec lui le fameux Ruby On Rails et la communauté qui va avec pour développer des applications web.

Pour Groovy, il a les avantages de Ruby tout en s'exécutant sur une machine virtuelle Java. Que demandé de plus !

fredericmazue

Quote:
c'est un peu un troll ce topic mais bon

J'espère bien :)
J'aime les discussions passionnées sur le forum :)

Quote:
mais Groovy c'est le meilleur

Il est vrai que Groovy est très très intéressant et encore injustement méconnu, comme beaucoup de langages intéressants d'ailleurs.....

Programmez! a la fierté d'être sans doute le premier magazine français à avoir vanté les qualités de Groovy. C'était dans le numéro 91.

Quote:
Python est bien pour le script, Ruby est plus adapté au web ... encore que.

Oui encore que :)
Parce que Python est, il me semble, quand même un poil plus performant et si tu penses framework et donc Ruby on Rail, ok, Rail est très bien, c'est incontestable. Mais côté Python il y a Zope (je parle du 2 pas du 3 que je n'aime pas) qui est très bien et aussi des outils comme Django, qui sont l'équivalent Python de Rail

Quote:
Pour Groovy, il a les avantages de Ruby tout en s'exécutant sur une machine virtuelle Java. Que demandé de plus !

Peut être demander moins ;) Parce que c'est tellement gourmant une JVM :)
(ah flute, ça c'est du troll... je n'ai pas pu me retenir :oops: mea culpa :oops: )