Bonjour
Merci de votre intérêt à mon tuto, je suis très flatté.
Je vais tenter de répondre à vos légitimes remarques…
1) concernant l’affectation a=42 vs a = 42 c’est mon habitude. Je viens du monde Unix et comme tel j’ai d’abord été shell avant d’être tout le reste. Et en shell l’espacement est interdit dans l’affectation. Et (malheureusement pour les puristes) j’ai gardé cette façon d’écrire dans les autres langages (C, Python, Powershell). Toutefois dans mon tuto je ne dis pas que ce style d’écriture est obligatoire (mais je ne dis pas non plus qu’il ne l’est pas). Bon je vais rajouter ce détail.
2) le coding: c’est un peu pareil: j’ai commencé Python en 2005 et à cette époque c’était du P2. Et quand je suis passé à P3 j’ai commencé par copier mes scripts pour les mettre à jour sans tester si cette obligation l’était toujours. En effet elle ne l’est plus mais là encore c’est une indication que j’aime bien. Et puis n’oublions pas le zen de Python: explicite vaut mieux qu’implicite.
3) le match… case effectivement il a été rajouté plus tard. Effectivement quand ce tuto a été commencé, il n’existait pas encore. J’ai donc tenté de reproduire à cette époque une notion connue mais non implémentée. Et pour la représenter, il fallait bien un support d’où le C dont les professionnels affûtés que vous êtes ont effectivement repéré que c’était de là que je venais. Mais ce tuto n’est pas figé et je vais essayer de renforcer ce paragraphe
4) la remarque de adril m’interpelle. En effet on n’apprécie pas forcément qu’on vous dise "tu as écrit des conneries" et bon donc je "m’empêtre" dans plein de trucs…
J’ai essayé de balayer très large mais qui peut se vanter de tout connaitre? Encore aujourd’hui j’apprends des choses (je suis en train d’étudier les descripteurs, ce qui m’a alors orienté au préalable sur les fonctions getattr(), setattr() et delattr() dont je ne connaissais pas l’existence). En parallèle je suis tombé sur des détails à propos du MRO dont je n’avais pas idée ce qui m’a amené à remettre en cause l’utilisation systématique de super() en cas d’héritage multiple => fonctionnement de super et nécessitera ensuite une remise à jour de ce tuto.
Mais pour en revenir aux dict, de mon point de vue, les iterkeys() et autres ont bel et bien disparu en P3. Ce n’est pas parce qu’on peut reproduire leur comportement au travers d’autres outils que ça change ce fait.
Mais c’est bien de tomber sur des professionnels critiques, ça me remet de l’humilité dans le citron Je serai heureux de reprendre certains détails (il dit que c’est un peu partout) à condition aussi d’accepter qu’on ne puisse pas non plus descendre au fond du fond (le diveintopython est fait pour ça).
5) les parallèles avec P2: c’est là encore un peu pareil. A l’époque où ce tuto a débuté, P2 était encore bien présent. Et évidemment plus le temps passe, moins c’est pertinent. Toutefois on peut encore tomber sur de vieux codes P2 et le débutant aura peut-être alors besoin de savoir ce qu’était xrange(), iterkeys(), viewkeys() etc. Il pourra peut-être se demander pourquoi il ne voit pas de "//" tout en ayant des divisions entières, etc etc etc
6) l’écosystème Python (pip, etc). Oui je ne l’ai pas mis, je suis humain donc limité. J’ai aussi un peu tendance à penser que cela est du ressort de l’admin et non du dev que d’installer ce qu’il faut. Mais d’un autre côté, avec la possibilité de créer des environnements personnels avec ses propres outils, le dev peut aussi jouer un rôle là dedans. Désolé, c’est un peu du "pile ou face"
Donc voilà, j’espère vous avoir un peu éclairé sur ce tuto que je suis heureux de pouvoir partager avec vous.
PS: désolé que vous considériez DVP comme de la concurrence. Perso je pense que plus le savoir est diffusé, mieux il peut se propager. Je serai heureux de collaborer avec vous comme je collabore avec eux.
Cordialement