ruby ou python

a marqué ce sujet comme résolu.

bonjour, j'aimerais savoir quel est le meilleur langage entre ces deux là. J'aimerais connaitre votre point de vue et leur avantage par rapport aux autres (au point de vue subjectif donc :))

EDIT: au niveau de django et Ror quel est le plus complet, le plus efficaces et rapides ?

+1 -3

le hype c'est un mot qui veut dire "un truc branché, à la mode, qui se veut moderne".

Python est assez simple à apprendre et te permet de faire de tout, la preuve tu es sur un site codé en python.

au niveau de django et Ror quel est le plus complet, le plus efficaces et rapides ?

Ce sont des fausses questions. Ils sont à peu près équivalents.

En fait la question n'apporte pas vraiment de réponse absolus. Les deux langages ont des avantages ou des inconvénients par rapport a l'autre (ex le "tout objet" que défend katana moi perso ça me saoule car je ne vois pas de raisons qu'on me force à faire de l'objet si j'en ai pas besoin).

Si tu veux un avis personnel je te dirais Python par ce que c'est ce que j'utilise quotidiennement au taf et qu'il a probablement une communauté un plus importante que Ruby mais, en toute honnêteté, c'est vraiment subjectif comme conclusion.

Si tu veux choisir entre les deux, sans plus de contraintes que ça, je te conseil de chercher quelques tutos pour les deux langages et de voir avec lequel tu accroche le plus.

bonjour, j'aimerais savoir quel est le meilleur langage entre ces deux là. J'aimerais connaitre votre point de vue et leur avantage par rapport aux autres (au point de vue subjectif donc :))

EDIT: au niveau de django et Ror quel est le plus complet, le plus efficaces et rapides ?

albert733

Il n'y a que des différences au niveau syntaxe, pour le reste, je pense qu'il y a ici une communauté nettement plus à l'avantage de python en ce qui concerne l'aide qu'on pourra t'apporter.

ce qui assure une plus grande consistance

katana

Que veut dire consistance ? On peut en donner plein de synonymes, si tu pouvais être plus clair et me dire où Ruby (des exemples) serait plus consistant.

Bref il faut faire attention à bien faire la distinction entre meilleur langage et langage préféré…

Alors, en toute objectivité, Ruby et Python sont deux bons langages qui se valent plus ou moins. En fonction de ce que tu souhaite faire, je peux te conseiller l'un ou l'autre.

Pour ce qui est du Web, j'ai tendance a conseiller à quelqu'un n'a aucun background dans les deux techno de s'orienter plutôt vers du ruby avec RoR. Dans la majorité des cas les développeurs de Ruby sont souvent plutôt avangardistes (ce qui est a la fois un mal et un bien) ce qui leur vaut souvent cette épithète de Hype. Par contre, en général, les libs qu'on voit souvent débarquer du coté de python viennent très souvent de Ruby.

Il y'a aussi le fait que Ruby est vraiment un langage qui peut s'utiliser en orienté objet (même si on a pas toujours besoin de l'utiliser), contrairement à python qu'on déconseille plutôt de l'utiliser dans ce sens (Orienté Objet).

Dans mon parcours, je me suis aussi rendu compte que du coté de Ruby, la communauté n'est pas aussi grande que celle de Python, mais en général les recherche en Ruby nous dirige vers des source qui fonctionne plutôt bien, alors qu'en python il faut très souvent faire le tri. C'est moins vrai avec Django par contre, ou la doc est un véritable atout pour les devs.

Tout ceci pour dire que si tu veut faire du web, j'ai envie de dire, tu feras surement mieux en Ruby, mais en général on trouve plus facilement quelqu'un qui sait faire du python plutôt que celui qui sait faire du ruby. Donc si tu t'oriente sur un projet Opensource, il vaut mieux partir sur un truc comme Python.

Voilà en gros, l'avis de quelqu'un qui a déjà touché aux deux. Ceci dit, clairement Symfony est largement en dessous, je ne le cite même pas dans mon argumentaire.

Loin de moi donner des conseils sur tel ou tel framework web, je ne suis pas du tout axé de ce côté, mais par contre je relève ceci

Il y'a aussi le fait que Ruby est vraiment un langage qui peut s'utiliser en orienté objet (même si on a pas toujours besoin de l'utiliser), contrairement à python qu'on déconseille plutôt de l'utiliser dans ce sens (Orienté Objet).

firm1

Je n'ai pas compris cette phrase, où j'espère ne pas l'avoir compris, c'est pourquoi je te demande plus d'éclaircissement, car je l'ai compris dans le sens "On ne conseille pas de faire de POO avec python".

Dans mon parcours, je me suis aussi rendu compte que du coté de Ruby, la communauté n'est pas aussi grande que celle de Python, mais en général les recherche en Ruby nous dirige vers des source qui fonctionne plutôt bien, alors qu'en python il faut très souvent faire le tri. C'est moins vrai avec Django par contre, ou la doc est un véritable atout pour les devs.

firm1

En général la documentation Python est très correcte, une des meilleures dans tous les langages confondus, je suis assez surpris de cette affirmation, car il est vrai qu'il y a beaucoup de fonctions permettant de faire le même travail et certaines plus efficaces que d'autres. Alors pourquoi ne pas prendre directement la fonction la plus efficace tu me diras ? C'est simple, certaines fois ces fonctions sont plus complexes à utiliser soit par leur documentation ou leur utilisation et dépassent les compétences du codeur débutant, et dans ce cas de figure il est intéressant de constater qu'une autre fonction plus simple, certes moins efficace (À-t-on vraiment besoin de cette efficacité ?) permettrait de faire le même travail en gagnant du temps de codage.

Ceci dit je ne parle pas de Ruby, je ne le connais que de vues et de très peu de tests, mais en ce qui concerne python et mes années à bosser avec, je ne suis pas trop d'accord sur ce point du vue.

Dans mon parcours, je me suis aussi rendu compte que du coté de Ruby, la communauté n'est pas aussi grande que celle de Python, mais en général les recherche en Ruby nous dirige vers des source qui fonctionne plutôt bien, alors qu'en python il faut très souvent faire le tri. C'est moins vrai avec Django par contre, ou la doc est un véritable atout pour les devs.

firm1

En général la documentation Python est très correcte, une des meilleures dans tous les langages confondus, je suis assez surpris de cette affirmation, car il est vrai qu'il y a beaucoup de fonctions permettant de faire le même travail et certaines plus efficaces que d'autres. Alors pourquoi ne pas prendre directement la fonction la plus efficace tu me diras ? C'est simple, certaines fois ces fonctions sont plus complexes à utiliser soit par leur documentation ou leur utilisation et dépassent les compétences du codeur débutant, et dans ce cas de figure il est intéressant de constater qu'une autre fonction plus simple, certes moins efficace (À-t-on vraiment besoin de cette efficacité ?) permettrait de faire le même travail en gagnant du temps de codage.

Ceci dit je ne parle pas de Ruby, je ne le connais que de vues et de très peu de tests, mais en ce qui concerne python et mes années à bosser avec, je ne suis pas trop d'accord sur ce point du vue.

fred1599

Je pense qu'il parlait surtout du fait qu'étant donné que la communauté Python est plus importante lorsque tu fais une recherche google de ton problème tu as plus de chance de tomber sur des solutions qui ne fonctionne pas. C'est logique car plus tu as de personnes capable de répondre plus la possibilité que la réponse soit mauvaise est importante.

Après ça veut aussi dire que tu aura surement plus de réponse à tes questions et ce genre de chose.

Perso récemment j'ai choisi de me mettre à un nouveau langage que je ne vois pas au taf, je me suis retrouvé en dernier choix avec Python et Ruby et je suis partie sur Ruby car c'est celui qui me tente le plus mais ça n'a aucune explication objective.

Si quelqu'un te dit utilise tel langage il est mieux ce sera complètement faux. Il faut un langage qui te plaise rien de plus. Tu peux faire peu ou prou les même chose avec ces deux langages donc à toi de voir de manière totalement subjective.

+2 -1

De toute façon on en arrive toujours au même point, sans plus de précision de la part de l'auteur de la question, ça ne peut se jouer que sur des préférences personnel. Donc autant le laisser lire quelques tutos d'introduction aux deux et choisir. Pour faire un choix plus objectif, il faudrait des contraintes plus importante. Par exemple si il voulait faire du calculs scientifique où les bibliothèques consacrés en Python sont beaucoup plus communes et reconnues qu'en Ruby. Et j'imagine qu'on peut trouver des exemples dans l'autre sens.

Bref, moi à sa place, je choisirais à Pile-ou-Face.

bonjour, j'aimerais savoir quel est le meilleur langage entre ces deux là. J'aimerais connaitre votre point de vue et leur avantage par rapport aux autres (au point de vue subjectif donc :))

EDIT: au niveau de django et Ror quel est le plus complet, le plus efficaces et rapides ?

albert733

Dans quel contexte ?

Ruby.

La syntaxe de Python est relou au possible, elle ne permet pas à ton éditeur de texte d'auto-indenter.

Ruby c'est génial, ça manque par contre de doc francophone. Je te conseillerais de commencer par des tutos bidons sur internet, c'est à dire apprentissage de la base du langage, sans plus. Ensuite, tu peux te diriger vers Programming Ruby 1.9 & 2.0 (4th edition): The Pragmatic Programmers' Guide qui est un chouette bouquin1.

Après c'est sur, tu vas avoir plus de faciliter à apprendre avec Python, y'a un big tuto sur Open Classrooms, ça doit déjà te donner de bonnes bases. Mais clairement, le code Ruby est beaucoup plus swag, surtout quand tu sais utiliser les fameux blocs.

Pour te donner une conclusion objective, Python à l'air beaucoup plus utilisé et plus simple d'accès, de par sa plus grande communauté. Les deux langages te permettront de faire ce que tu veux, ils ont tous les deux une bibliothèque standard imposante, et ils ont tous les deux un gestionnaire de paquet (pip et gem si je ne m'abuse). Mais tu prendras plus ton pied en codant avec Ruby ;)


  1. Tu peux le trouver gratuitement sur http://it-ebooks-search.info/, mais j'ai aucune idée de la légalité du truc … 

Ruby.

La syntaxe de Python est relou au possible, elle ne permet pas à ton éditeur de texte d'auto-indenter.

Ruby c'est génial, ça manque par contre de doc francophone. Je te conseillerais de commencer par des tutos bidons sur internet, c'est à dire apprentissage de la base du langage, sans plus. Ensuite, tu peux te diriger vers Programming Ruby 1.9 & 2.0 (4th edition): The Pragmatic Programmers' Guide qui est un chouette bouquin1.

Après c'est sur, tu vas avoir plus de faciliter à apprendre avec Python, y'a un big tuto sur Open Classrooms, ça doit déjà te donner de bonnes bases. Mais clairement, le code Ruby est beaucoup plus swag, surtout quand tu sais utiliser les fameux blocs.

Pour te donner une conclusion objective, Python à l'air beaucoup plus utilisé et plus simple d'accès, de par sa plus grande communauté. Les deux langages te permettront de faire ce que tu veux, ils ont tous les deux une bibliothèque standard imposante, et ils ont tous les deux un gestionnaire de paquet (pip et gem si je ne m'abuse). Mais tu prendras plus ton pied en codant avec Ruby ;)

GaaH

Dans quelque temps on aura bientot un tuto sur zds :) http://zestedesavoir.com/tutoriels/off/373/ruby/ j'attends qu'il soit fini pour le lire


  1. Tu peux le trouver gratuitement sur http://it-ebooks-search.info/, mais j'ai aucune idée de la légalité du truc … 

Surement.

Le miens ne sait pas comment indenter

1
2
3
4
if True:
    print('Je suis dans le if')
    print('moi aussi')
print('Je ne suis pas dans le if')

et encore moins

1
2
3
4
5
6
if True:
    print('Je suis dans le if')
    if True:
        print('je suis dans le if dans le if')
else:
    print('Je suis dans le else du premier if')

Non, l'auto-indent avec Python c'est la cata, rien que le premier exemple peut être indenter de 3 façons différente (soit tous dans le if, soit les deux premiers, soit juste le premier)

EDIT : Évidemment, la mon code est indenté, désindente le et colle dans ton super éditeur de texte, je suis pas sur qu'il donne de super résultats …

+3 -6

Je ne viens pas spécialement donner un avis, juste corriger les bêtises que je lis à droite à gauche.

Non, l'auto-indent avec Python c'est la cata,

Là on parle d'une comparaison entre éditeurs. Par conséquent on commence à virer à la mauvaise foi.

Ça fait des années que je programme avec Python dans Vim sans le moindre plugin, et l'auto-indent par défaut de Vim pour Python est simplement parfait. Bref : ne reproche pas au langage le fait que ton éditeur ne fonctionne pas bien.

J'ai vu passer un argument "Ruby est vraiment objet" (sous-entendu Python ne l'est pas) : ça aussi c'est une ineptie. Le data model de Ruby est calqué sur celui de Python. Et la toute première chose à savoir sur le data model de Python (la toute première chose que raconte sa doc) est ceci :

Objects are Python’s abstraction for data. All data in a Python program is represented by objects or by relations between objects. (In a sense, and in conformance to Von Neumann’s model of a “stored program computer,” code is also represented by objects.)

Documentation Python

TOUT est un objet en Python, sauf que le programmeur n'est pas forcé d'utiliser le paradigme objet pour exprimer son programme. Et c'est une liberté que j'attends de n'importe quel langage de programmation.

PS : La POO, c'est tout sauf hype.

+8 -3

Salut !

Si vraiment je devais différencier Python et Ruby d'un point de vue utilisation, je dirais que Python offre un modèle assez académique de l'algorithmique tandis que Ruby, à l'inverse tend à offrir une formule plus intuitive.

Je m'explique : en Python, on trouve un typage classique, sur des contructions (while, for, if/else…) classiques, une gestion des procédures/fonctions classique et un modèle objet classique (Je donne une image grossière du langage, Python n'est bien évidemment pas la définition même du langage classique de base). Je dirais que le programmeur Python s'adapte au modèle qui lui est présenté et ce modèle est curieusement très proche de l'algorithmique telle qu'on l'apprend en cours (d'où l'amour fou des écoles d'ingé pour Python).

De l'autre côté on a Ruby. Dans ce langage, on considère les boucles comme mauvaise pratique, on leur préfère les blocs (construction syntaxique facilitant l'utilisation de closures). En Ruby, tout type de base est un objet, comme en Python, sauf qu'on insiste d'avantage dessus. Le code suivant est très naturel en Ruby, alors qu'un équivalent en Python vous vaudrait le titre d'artiste :

1
2
# Utilisation des méthodes Fixnum#times et Fixnum#to_s
5.times {|i| puts "Loop #{i.to_s}" }

On a réellement utilisé des méthodes du type int de Ruby. Il est vraiment considéré pour l'objet qu'il est. On notera que cette méthode times est très intuitive et parlera beaucoup au débutant qui veut exécuter son code 5 fois.

De plus, Ruby a beaucoup de sucre syntaxique. Contrairement à Python qui a une syntaxe très épurée, qui considère qu'il n'y a qu'une manière de faire les choses, Ruby pense qu'il y a myriade de façon de faire et que le langage doit permettre au programmeur d'écrire son récit tel qu'il l'entend et ne devrait pas être biaisé par des restrictions syntaxiques.


Pour résumer, je dirais du côté Python, on a un langage propre, épuré qui demande au programmeur de s'adapter à lui en échange d'un code "carré". Ruby quant à lui permet, à l'instar de Perl, d'écrire ce que l'on veut, le langage s'adapte au programmeur (c'est imagé hein !) en échange d'un code pas toujours simple à lire pour un autre programmeur.

C'était mon humble avis, ça vaut ce que ça vaut… Bisou <3

Ruby c'est génial, Python c'est relou

GaaH

Super, eh bien avec ce genre d'argumentaire, si moi je dis le contraire, le PO sera bien avancé.

Pour te donner une conclusion objective…Mais tu prendras plus ton pied en codant avec Ruby

GaaH

Ah oui c'est très objectif et ça depuis le début où tu as écris ton post :)

C'est le genre de réponse dont n'a vraiment pas besoin le PO, il fait beau et le troll poilu est de sorti… Tu devrais aller voir du côté de ceux qui prennent leur pied en codant avec python, il y en a aussi un bon paquet, vous pourrez aller vous battre à coup de codes pour savoir qui éjaculera le plus loin.

Ensuite pour l'éditeur, c'est sûr que si tu prends l'IDLE python, ça va pas être super, mais Geany ou Vim comme le dis nohar, fera déjà une grosse différence.

Indentation automatique, jusqu'à un certains point… Il faut savoir que l'indentation donne un sens, et qu'il n'est pas censé savoir (l'interpréteur) si tu veux mettre ton print dans la condition if ou en dehors. Un interpréteur n'est pas censé lire dans tes pensées.

Éditeur et python, comment peut-on comparer les deux, à moins d'être complètement HS, l'herbe de Provence ça ne se fume pas ! Tu ne spécifies pas l'éditeur en question mais en plus tu dis que python est merdique à cause d'un éditeur soit disant merdique (il n'y a que toi pour le prouver apparemment).

Pour conclure… Comment comparer deux langages qui font la même chose, avec une syntaxe qui diffère, et encore il y a de fortes ressemblances dans certains cas, et dire qu'un langage va rendre la masturbation meilleure? On l'a déjà dis, être objectif ce n'est pas donné un avis personnel sur son langage préféré.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte