Il tutorial è... sempre più complicato

Era da un po' che non aggiornavo la traduzione del tutorial di Python, ma oggi ho dedicato qualche ora a riportarmi in pari. Di solito le modifiche da sincronizzare sono delle piccole correzioni, accorgimenti, migliorie cosmetiche. A volte però capita per le mani qualcosa di più grosso, che ti dà da pensare. 

In questa tornata, il capitolo 8 "Errori ed eccezioni" è stato particolarmente tormentato. Per prima cosa, è stato deciso di rimuovere il consiglio di far derivare tutte le eccezioni di un modulo da una classe-madre comune. Potete vedere il testo rimosso nella vecchia versione 3.8; adesso, dalla 3.9 in avanti non esiste più. La ragione è che in realtà si tratta di una vecchia "buona pratica" che oggi è considerata dubbia. Un problema, che è stato fatto notare, è che in realtà si tratta di una pratica ancora largamente adottata nei moduli della libreria standard. 

Un altro problema, che invece non è stato fatto notare, è che il testo rimosso non viene rimpiazzato da nessun altro consiglio. Il problema, molto concreto per un principiante, di come organizzare le eccezioni personalizzate in un modulo, d'ora in poi non trova più risposta nel tutorial. 

Nel mio piccolo, sono sempre stato contrario alla pratica di rimuovere informazioni dal tutorial; mi è anche capitato di far presente la mia opinione nelle giuste sedi, con successo non brillantissimo, diciamo. Il punto è che, già così com'è, il tutorial è un discreto pasticcio... Tuttavia, in attesa di una risistemazione più approfondita, ogni informazione che si toglie è un'informazione che va perduta. E non solo l'informazione in sé, ma proprio il fatto che quell'informazione fosse presente. Se in futuro qualcuno dovesse risistemare quel capitolo, non avrà più modo di sapere che un tempo lì c'era un consiglio pratico su come organizzare le eccezioni (per quanto la soluzione potesse essere discutibile). Il problema non verrà mai più posto, e un consiglio non verrà mai più dato. 


Per contro qualche giorno dopo, nello stesso capitolo, è stato aggiunto un paragrafo finale sui gruppi di eccezioni. Si tratta di una nuova feature che dovrà atterrare nella 3.11, e pertanto potete leggere il testo in anteprima solo nella versione futura del tutorial

Ora, vi sfido (cioè... vi invito!) a leggere questo nuovo paragrafo. Onestamente, io non l'ho capito. Cioè, l'ho copiato, l'ho tradotto... ma non non l'ho proprio capito. Confesso che non sapevo di questa novità, e il testo del tutorial è stata la mia prima scoperta. Se anche voi non riuscite a orientarvi, non posso biasimarvi. Si tratta di una feature molto avanzata, nata dall'esigenza specifica di un concurrency framework come Trio. Dopo aver letto la PEP e un po' di altra documentazione, più o meno ho capito di che cosa si tratta. 

Il problema, qui, non è certo che i gruppi di eccezioni siano una cattiva idea (sono una buona idea), o che servano a poco (servono). Ma era proprio necessario introdurli nel tutorial, e in modo così criptico? In pochi giorni, nello stesso capitolo, abbiamo perso un paragrafo che documentava una pratica basilare, e abbiamo acquisito un paragrafo su un concetto oscuro e avanzato. Non mi sembra un buon bilancio per un tutorial, diciamo. 


La verità è che, purtroppo, il tutorial di Python è una specie di bacheca aperta, dove chiunque o quasi può attaccare il suo biglietto (e spostare, modificare, etc.). Siccome non c'è un piano redazionale coerente né una redazione che vaglia le proposte, evolve giorno per giorno con la trovata del momento. Si procede a colpi di BPO e di discussioni sul bug tracker, e poi di PR e discussioni su GitHub, caso per caso, finché un core developer autorizza il cambiamento; ma non c'è un piano coerente su che cosa dovrebbe andare nel tutorial, e che cosa no, e perché, e in che modo. Intendiamoci, nella maggior parte dei casi gli autori hanno comunque la coscienza necessaria a mantenere una rotta...

E poi talvolta invece scappa la mano. 


Commenti

Post più popolari