IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Python ou Ruby ?


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Octobre 2006
    Messages : 55
    Points : 66
    Points
    66
    Par défaut Python ou Ruby ?
    Je suis nouveau venu à Python, que je suis plus en train d'expérimenter que d'utiliser en production. J'y suis arrivé par le livre de M. Summerfield "Rapid GUI programming with Python & Qt". J'ai donc repris la configuration recommandée, en évitant Python 3.0 car il n'existe pas de version PyQt utilisant ce nouveau Python.
    J'ai devant moi deux semaines de congés, que je vais mettre à profit pour approfondir ce langage, car pour le moment j'hésite encore sur le choix définitif: Python ou Ruby?

  2. #2
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    Je ne connais pas Ruby mais de ce que j'ai pu comprendre de différentes informations glannée de ci de là, ruby est serait purement orienté web (et donc réseau je suppose). Python, lui est également très utilisé pour du web ou du réseau, mais reste très ouvert pour une plus large gamme de soft (jeux, traitement de texte, scientifique etc...). La partie sur ruby est à confirmer, mais en me basant sur ce que j'ai cru comprendre de ce dernier donc, je dirais python, pour sa flexibilité (et accessoirement son gestionnaire d'exceptions, sa simplicité entre autres).

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par aandre2937 Voir le message
    Je suis nouveau venu à Python, que je suis plus en train d'expérimenter que d'utiliser en production. J'y suis arrivé par le livre de M. Summerfield "Rapid GUI programming with Python & Qt". J'ai donc repris la configuration recommandée, en évitant Python 3.0 car il n'existe pas de version PyQt utilisant ce nouveau Python.
    J'ai devant moi deux semaines de congés, que je vais mettre à profit pour approfondir ce langage, car pour le moment j'hésite encore sur le choix définitif: Python ou Ruby?
    Python, mais sans PyQt, passe par wxPython, bien plus "mieux" foutu que PyQt (plsu dans la mentalité Python que PyQt).

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par N.tox Voir le message
    Je ne connais pas Ruby mais de ce que j'ai pu comprendre de différentes informations glannée de ci de là, ruby est serait purement orienté web (et donc réseau je suppose).
    Non. Ruby on Rails est le gros framework web, mais Ruby != RoR.
    Tout dépend ce que tu veux faire en réalité avec. Si c'est du scripting pur, les deux seront très bien. Pour le côté GUI, je ne connais pas Ruby, mais wxPython est très bien. Pour le côté scientifique, Python sans hésiter (les outils de Ruby ne sont pas aussi bien développés). Pour le côté Web, ça se défend, il y a de
    quoi choisir des deux côtés. ...

  5. #5
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Personnellement, je vais (re)passer a ruby ( + on rails) a la place de python/django, pour ces raisons suivantes :
    - Je prefere la syntaxe de ruby, qui est BEAUCOUP plus flexible
    - l'ORM de django est une merde (pas de connexions persistantes, pas de pools de connexion, pas de cache de requêtes, donc des requêtes qui se répètent a gogo dans la même page....)
    - j’en ai marre que personne respecte les conventions de nommage de python, chez ruby c’est pas comme ca, j’ai rarement vu une api ne pas respecter les conventions
    - rubygems
    - JRuby est bien mieux maintenu que Jython qui lui est pratiquement a l'abandon
    - Les API sont généralement plus sympa je trouve, par exemple Gruff, quand on vois l'horreur qu'est matplotlib a coté... (certe c'est plus complet, mais c'est une horreur de conception)
    - J'en ai marre que personne respecte le PEP-008

    Python a quand meme des avantages :
    - Meilleur documentation
    - Meilleur vitesse (enfin pas pour longtemps.. avec ruby2)
    - l'admin automatique de django

  6. #6
    Membre chevronné

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Points : 1 752
    Points
    1 752
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Python, mais sans PyQt, passe par wxPython, bien plus "mieux" foutu que PyQt (plsu dans la mentalité Python que PyQt).
    Ah bon... Je travaille avec PyQt et je vais me faire sans difficulté une GUI évoluée. Le seul reproche que je ferais à PyQt est le manque d'exemples simples.

  7. #7
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Python, mais sans PyQt, passe par wxPython, bien plus "mieux" foutu que PyQt (plsu dans la mentalité Python que PyQt).
    une API qui prefere utiliser les conventions de nommage de C++ plutot que celles de python j'appelle pas ca mentalité python....

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Les conventions de nommage C++, ça n'existe pas. Il ya une convention pour le coeur de Python, mais ça n'est pas une obligation, tout comme en C++.
    Maintenant, la manière de fonctionner me semble plus pythonistique, mais ce n'est que mon avis.

  9. #9
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Les conventions de nommage C++, ça n'existe pas. Il ya une convention pour le coeur de Python, mais ça n'est pas une obligation, tout comme en C++.
    Maintenant, la manière de fonctionner me semble plus pythonistique, mais ce n'est que mon avis.
    Moi c'est simple, si je trouve une API qui respecte pas ca, c'est que le créateur n'a aucun respect pour les langage et les programmeurs, donc poubelle

  10. #10
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par kedare Voir le message
    Moi c'est simple, si je trouve une API qui respecte pas ca, c'est que le créateur n'a aucun respect pour les langage et les programmeurs, donc poubelle
    Mais il n'y a pas d'obligation pour Python, comme il n'y en a pas en C++, donc je ne vois pas quel est le problème.

  11. #11
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Mais il n'y a pas d'obligation pour Python, comme il n'y en a pas en C++, donc je ne vois pas quel est le problème.
    pour la cohérence de l'API

  12. #12
    Membre confirmé Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Points : 567
    Points
    567
    Par défaut
    Bonjour,

    Personnellement tant que qu'on peut différencier les classes et le reste suivant que la première est une capitale ou pas, ça me va.

    D'un côté c'est bien que tout le monde ait les mêmes conventions, d'un autre côté quand je fais de C# ou du Java ça me gave de me forcer à utiliser une convention que je n'aime pas.

    De toute façon pour Python c'est mort vu que la bibliothèque standard elle-même ne supporte pas les conventions.
    :wq

  13. #13
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par kedare Voir le message
    pour la cohérence de l'API
    L'API wxPython est cohérente.
    Citation Envoyé par dapounet Voir le message
    De toute façon pour Python c'est mort vu que la bibliothèque standard elle-même ne supporte pas les conventions.
    Un effort est fait pour rendre PEP8 les API des modules standard.

  14. #14
    Membre confirmé Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Points : 567
    Points
    567
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Un effort est fait pour rendre PEP8 les API des modules standard.
    Je viens de me rendre compte que ce que je visais est en accord avec PEP 8 :
    mixedCase is allowed [for functions] only in contexts where that's already the prevailing style (e.g. threading.py), to retain backwards compatibility.
    Je ne vois pas l'intérêt de préserver la compatibilité dans Python 3, mais bon...
    :wq

  15. #15
    Membre régulier
    Profil pro
    embedded software engineer
    Inscrit en
    Juin 2002
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : embedded software engineer

    Informations forums :
    Inscription : Juin 2002
    Messages : 181
    Points : 101
    Points
    101
    Par défaut
    Lequel des 2 langages est le plus adapté à faire du multi-tâches? multi-threads? multi-process? multi-processeurs?

    Car j'entendu dire que ces langages n'étaient pas adapté à la programmation parallèle?

  16. #16
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    C'est un amalgame, plutôt.
    Les deux ont un lock au niveau de l'interpréteur (enfin, CPython, Jython et IronPython n'ont pas ce "problème") qui empêche que deux threads accèdent à l'interpréteur en même temps.
    Maintenant, il y a des packages pour travailler en multi-processus, et en compilant le code avec Cython ou avec du code C/C++/Fortran, tu peux t'affranchir du verrou et donc aucun problème.

  17. #17
    Membre régulier
    Profil pro
    embedded software engineer
    Inscrit en
    Juin 2002
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : embedded software engineer

    Informations forums :
    Inscription : Juin 2002
    Messages : 181
    Points : 101
    Points
    101
    Par défaut
    Je ne connais pas python et ruby, mais le but de la conccurence, c'est que justement que 2 threads ptyhon puissent accèder en "parallèle" de manière transparante à l'interpréteur, ou alors c'est justement ce que tu décrit?
    que veux-tu dire par:
    "en compilant le code avec Cython ou avec du code C/C++/Fortran" ???

  18. #18
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par trois_1 Voir le message
    Je ne connais pas python et ruby, mais le but de la conccurence, c'est que justement que 2 threads ptyhon puissent accèder en "parallèle" de manière transparante à l'interpréteur, ou alors c'est justement ce que tu décrit?
    que veux-tu dire par:
    "en compilant le code avec Cython ou avec du code C/C++/Fortran" ???
    Avec du code C/C++/Fortran ou Cython, il n'est plus forcément nécessaire de faire appel à l'API Python. Si tel est le cas, plusieurs threads pourront travailler en parallèle.
    Python et Ruby ne permettent pas (ou plutôt les implémentations de référence) que deux threads accèdent en même temps à l'interpréteur.

  19. #19
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 285
    Points : 36 773
    Points
    36 773
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Avec du code C/C++/Fortran ou Cython, il n'est plus forcément nécessaire de faire appel à l'API Python. Si tel est le cas, plusieurs threads pourront travailler en parallèle.
    Python et Ruby ne permettent pas (ou plutôt les implémentations de référence) que deux threads accèdent en même temps à l'interpréteur.
    Je n'ai pas essayé mais le PEP-0317 mentionne:
    The processing package mimics the standard library threading
    module functionality to provide a process-based approach to
    threaded programming allowing end-users to dispatch multiple
    tasks that effectively side-step the global interpreter lock.
    et devrait être inclus dans 2.6n, 3.0n.

    Cela permet à priori de distribuer la charge sur plusieurs CPU d'un multicore même si cela ne remet pas en cause l'architecture globale de l'interpréteur.
    Ceci dit, tout dépend des utilisations qu'on fait de Python ou des autres langages interprétés: si on veut de la performance 'brute', il vaut mieux utiliser C/C++...
    -W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  20. #20
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Cela permet à priori de distribuer la charge sur plusieurs CPU d'un multicore même si cela ne remet pas en cause l'architecture globale de l'interpréteur.
    Ceci dit, tout dépend des utilisations qu'on fait de Python ou des autres langages interprétés: si on veut de la performance 'brute', il vaut mieux utiliser C/C++...
    -W
    D'où ce que j'ai dit, on peut passer des fonctions C/C++/Fortran aux threads, et à ce moment, aucun problème. Et ça sera bien plus rapidement créé qu'une application purement compilée dans 99% des cas.

Discussions similaires

  1. vulnérabilité Python et Ruby aux attaques par timing
    Par eyquem dans le forum Général Python
    Réponses: 1
    Dernier message: 19/07/2010, 15h45
  2. Réponses: 10
    Dernier message: 17/02/2010, 22h06
  3. Java, Python ou Ruby ?
    Par Mindiell dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 22/06/2009, 21h03
  4. Python ou Ruby pour débuter ?
    Par TallyHo dans le forum Débuter
    Réponses: 17
    Dernier message: 02/08/2007, 22h32
  5. Python ou Ruby ?
    Par Tijee dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 25/04/2007, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo