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

  1. #21
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    mars 2012
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : mars 2012
    Messages : 1 909
    Points : 3 092
    Points
    3 092
    Par défaut
    @Pyramidev: cython et cpython s'allient.

    'Cython is a compiled language that generates CPython extension modules.'

    Python doit rester simple d'apprentissage et éviter tous les problèmes d'accolades...
    Par contre comme tu le dis, des sur ensembles, paradigme peuvent naître et cohexister.
    Si la réponse vous a aidé, pensez à cliquer sur +1

  2. #22
    Expert confirmé

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    3 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 3 812
    Points : 5 987
    Points
    5 987
    Par défaut
    Il n'y a pas de variable en Python elles ne sauraient donc être typées.

    Dans un cas comme a = 42, Python crée une instance du type int avec la valeur 42 ensuite il prend un post-it écrit un a dessus et colle cette étiquette sur l'instance qu'il vient de créer.

    Maintenant si l'on fait b = 42 Python se souvient avoir déjà créé cela, il se contente donc de créer un nouveau post-it avec un b et le collera sur notre premier objet.

    Ensuite si l'on fait a += 2, comme les entiers sont imutables, Python crée donc une nouvelle instance de type int avec la valeur 42 + 2 prend l'étiquette a déjà collée sur le premier int et la colle sur le nouvel objet.

    Mais il en sera de même si l'on fait a = "texte" l'étiquette a étant neutre (non typée) elle pourra donc être utilisée sur une string ou un tuple, une liste, etc.

    Lorsqu' un objet n'a plus d'étiquette il sera détruit par le garbage collector.

    Pour être plus complet l'exemple de a = 42 n'est pas tout à fait exact, Python, lors de son démarrage crée immédiatement tout une série d'entiers (de -x à +255 si je ne m'abuse) et donc il réutilise évidement ceux qu'il a créé.

    Pour savoir combien d'étiquette possède déjà un objet on utilise getrefcount()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    >>> import sys
    >>> sys.getrefcount(42)
    8
    >>> a = 42
    >>> sys.getrefcount(42)
    9
    >>> del a
    >>> sys.getrefcount(42)
    8

  3. #23
    Expert confirmé
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    avril 2016
    Messages
    969
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : avril 2016
    Messages : 969
    Points : 4 163
    Points
    4 163
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Il n'y a pas de variable en Python elles ne sauraient donc être typées.
    Dans les exemples de ton message, a et b sont des variables.

    Elles peuvent être typées statiquement avec des annotations de type. Un outil comme mypy permet alors de vérifier si le typage est respecté, directement en lisant le code, sans l'exécuter.

    Par exemple, le code suivant s'exécute correctement, mais est rejeté par mypy :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    a : int = 42
    b : int = 42
    a += 2
    a = "texte" # Erreur selon mypy : "texte" est de type str alors que a est de type int.
    Citation Envoyé par VinsS Voir le message
    Dans un cas comme a = 42, Python crée une instance du type int avec la valeur 42 ensuite il prend un post-it écrit un a dessus et colle cette étiquette sur l'instance qu'il vient de créer.

    Maintenant si l'on fait b = 42 Python se souvient avoir déjà créé cela, il se contente donc de créer un nouveau post-it avec un b et le collera sur notre premier objet.
    Attention : cette optimisation n'est pas garantie et dépend de l'implémentation.

    Extrait de The Python Language Reference :
    « after a = 1; b = 1, a and b may or may not refer to the same object with the value one, depending on the implementation »

    Citation Envoyé par VinsS Voir le message
    Lorsqu' un objet n'a plus d'étiquette il sera détruit par le garbage collector.
    Pour compléter tes dires, dans l'implémentation actuelle de CPython, il sera généralement détruit tout de suite. Mais, dans d'autres implémentations (ex : PyPy), la destruction peut être retardée.

    Extrait de The Python Language Reference :
    « CPython implementation detail: CPython currently uses a reference-counting scheme with (optional) delayed detection of cyclically linked garbage, which collects most objects as soon as they become unreachable, but is not guaranteed to collect garbage containing circular references. See the documentation of the gc module for information on controlling the collection of cyclic garbage. Other implementations act differently and CPython may change. Do not depend on immediate finalization of objects when they become unreachable (so you should always close files explicitly). »

  4. #24
    Membre extrêmement actif
    Profil pro
    Développeur
    Inscrit en
    mars 2012
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : mars 2012
    Messages : 1 909
    Points : 3 092
    Points
    3 092
    Par défaut
    Un langage sans variable, ça doit être vachement rapide

    Il y a bien des variables en python, sinon tu ne pourrais retrouver leurs valeurs.

    Regarde la méthode Type().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    a = 1
    print(type(a))
    >> class: 'int'
     
    b = "s"
    print(type(b))
    >> class: 'str'
    Si la réponse vous a aidé, pensez à cliquer sur +1

  5. #25
    Expert confirmé

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    3 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 3 812
    Points : 5 987
    Points
    5 987
    Par défaut
    Citation Envoyé par hotcryx Voir le message
    Un langage sans variable, ça doit être vachement rapide

    Il y a bien des variables en python, sinon tu ne pourrais retrouver leurs valeurs.
    ...
    J'ai trouvé ceci, il explique la même chose que moi mais il y a des dessins en plus. Je sais que cela en aide certains.

  6. #26
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juin 2016
    Messages
    844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2016
    Messages : 844
    Points : 24 132
    Points
    24 132
    Par défaut Guido Van Rossum, le créateur de Python, rend en partie responsables les médias sociaux
    Guido Van Rossum, le créateur de Python, rend en partie responsables les médias sociaux
    de sa démission de la direction du projet

    En juillet 2018, après presque 30 ans à superviser le développement de Python, Guido Van Rossum, son créateur, avait annoncé son désir de se retirer du processus décisionnel à la Fondation Python. « Je voudrais me retirer entièrement du processus de décision », dit-il. Mais « Je serai encore là pendant un certain temps en tant que développeur de base ordinaire, et je serai toujours disponible pour encadrer les gens, peut-être plus disponible ».

    Dans un entretien avec Swapnil Bhartiya, le fondateur de TFIR, un blog, Guido Van Rossum parle de l'origine du langage et de la raison pour laquelle il s'est retiré de la direction du projet qu'il a créé. En 2018 quand il annonçait sa démission, il laissait voir de possibles soucis de santé. « Je ne suis plus jeune ... (Je vais vous épargner la liste des problèmes médicaux) ». Alors, « je me retire de manière permanente de mon rôle de BDFL (Benevolent Dictator For Life), et vous serez tous seuls ». Pour rappel, le Benevolent Dictator for Life, littéralement « Dictateur bienveillant à vie », est le surnom donné à une personne respectée de la communauté de développement open source qui définit des orientations générales d'un projet donné.


    Alors qu'il venait de valider la 572e proposition d'amélioration de Python, il a décidé d'arrêter de prendre part au processus de validations de ces PEP. Dans un mail adressé à la communauté, le BDFL a déclaré : « maintenant que la PEP 572 est acceptée, je ne veux plus avoir à me battre autant pour une proposition de modification, surtout si autant de gens méprisent ma décision. Je voudrais me retirer complètement du processus de décision. Je serai toujours là pendant un moment en tant que développeur ordinaire, et je serai toujours disponible pour encadrer des personnes - peut-être davantage. Mais je me donne essentiellement des vacances permanentes en tant que BDFL, et vous serez tous seuls. Après tout, cela devait finir par arriver - il y a toujours ce bus qui se cache au coin de la rue, et je ne rajeunis pas ... (je vous épargne la liste des problèmes médicaux) ».

    Il avait même refusé de désigner un successeur : « je ne vais pas nommer un successeur », avait-il dit. Dans l'interview, Van Rossum souligne qu'il reste l'un des développeurs principaux et déclare qu'une nouvelle gouvernance sera mise en place. « Nous allons mettre en place une nouvelle forme de gouvernance. Nous n'avons pas encore décidé de ce que ce sera. Nous avons actuellement environ cinq propositions différentes pour de nouveaux systèmes de gouvernance et il y aura un vote à ce sujet parmi les principaux développeurs, puis un autre qui déterminera précisément qui va former le leadership », a-t-il dit.

    Rappelons qu'à sa démission en 2018, au cours des cinq mois qui ont suivi, la communauté Python avait adopté un nouveau modèle de gouvernance, le PEP 8016, qui proposait « un modèle de gouvernance Python basé sur un modèle de conseil de direction. Le conseil a un large pouvoir qu’il cherche à exercer le plus rarement possible; au lieu de cela, il utilise ce pouvoir pour établir des processus standard, comme ceux proposés dans les autres PEP de la série 801x. Cela correspond à la philosophie générale selon laquelle il est préférable de scinder de gros changements en une série de petits changements pouvant être examinés indépendamment: au lieu d'essayer de tout faire dans un PPE, nous nous concentrons sur la fourniture d'une base minimale, mais solide pour de futures décisions de gouvernance ».

    Pour revenir aux raisons de sa démission, Van Rossum dit lors de l'entretien que ce qui a conduit à sa démission est une forme de remise en question de ses décisions sur les médias sociaux. « Pour moi personnellement, les médias sociaux ont certainement provoqué un stress supplémentaire et je n'aimais pas le fait que les développeurs principaux postaient des tweets dans lesquels ils remettaient en question mon autorité ou la sagesse de mes décisions, plutôt que de me le dire en face et d'avoir un débat honnête à propos de certaines choses ... », dit-il.

    « Je suis tout à fait convaincu que les développeurs principaux les plus expérimentés que nous avons actuellement, ainsi que les nouveaux développeurs principaux que nous avons, seront ensemble en mesure de résister à tout type de tempête susceptible de survenir à la manière de Python. Oui, j'ai démissionné du titre tout à coup, mais il y avait déjà beaucoup de responsabilités que j'avais déjà complètement déléguées. Je veux dire, je touche à peine la base de code, j'ai à peine passé en revue les soumissions », ajoute-t-il.

    Source : Billet de blog

    Et vous ?

    Que pensez-vous des raisons de sa démission ?

    Voir aussi

    Le créateur de Python se retire du processus décisionnel relatif au langage, qu'est-ce que cela signifie pour l'avenir de Python ?

    La communauté Python adopte un nouveau modèle de gouvernance 5 mois après le départ volontaire du créateur du langage qui en était le décisionnaire

    Guido van Rossum envisage de mettre fin au support de Python 2.7 le 1er janvier 2020 plus de mises à jour ou correctifs de sécurité après cette date
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  7. #27
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2018
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2018
    Messages : 41
    Points : 80
    Points
    80
    Par défaut
    [QUOTE=k304315;10361838]Python est un langage très intéressant, mais ses divergences par rapport au langage "ordinaire" issue du C (java, php, c++, ...) notamment en matière syntaxique rendent son utilisation pas très efficace sur de gros projets.

    Il faut argumenter et donner des détails factuels.
    Un gros projet, c'est quoi ? Quel gros projet ?
    Qu'est-ce que ça veut dire "divergences syntaxiques" ? Tout langage qui n'est pas un avatar du C est-il non efficace ? Pourquoi ?

    Le plus beau troll de l'année, je crois...
    Si vous êtes aussi imprécis que cela sur vos projets, j'aimerais voir la tête du code...

Discussions similaires

  1. Réponses: 56
    Dernier message: 10/09/2019, 18h14
  2. [INFO] Guido van Rossum en podcast
    Par VinsS dans le forum Général Python
    Réponses: 0
    Dernier message: 27/02/2017, 10h12
  3. Où trouver une biographie de Guido Van Rossum ?
    Par python-learn dans le forum Général Python
    Réponses: 3
    Dernier message: 18/01/2016, 00h02
  4. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 12h32
  5. [langage] Retirer le premier caractère d'une chaine ?
    Par kwisach dans le forum Langage
    Réponses: 5
    Dernier message: 24/04/2003, 11h05

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