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 :
| # 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