Tutorial, varie ed eventuali

Back to work have fun! Ho appena terminato un periodo di... lavori forzati, nel senso che un lavoro mi ha assorbito completamente e non sono riuscito a fare nulla di neanche lontanamente pythonico. Adesso le cose sono tornate tranquille, e sto cominciando a riprendere il giro. 

Ci sono un sacco di cose in arretrato... dovrei aggiornare il mio libro su Python in Windows, portare avanti l'altro mio libro su wxPython, tornare a rispondere a qualcuno sui forum... ma per prima cosa mi sono dedicato a sincronizzare la mia traduzione del tutorial, che era rimasta un po' indietro. 

Python 3.10 è qui, e anche il suo tutorial!

La prima cosa che ho visto (ma me l'aspettavo...) è che nel frattempo Python 3.10 è entrato nella sua fase "beta": questo significa, tra le molte altre cose, che ormai ha un branch dedicato nella repository, nella documentazione, e quindi anche nel tutorial. Dal punto di vista tecnico, questo significa che il "master" branch adesso contiene il lavoro per il futuro Python 3.11 (e a proposito di quel "master"... ci arrivo tra poco), mentre la 3.10 ha ormai il suo "topic branch" dedicato. 

La mia traduzione segue lo stesso schema, e si arricchisce anche lei di un branch. Adesso, accanto alla documentazione per la versione corrente, è possibile già leggere quella per Python 3.10 e quella per Python 3.11 (al momento identica). Come sempre, usate il selettore di ReadTheDocs in basso a destra per cambiare versione.

Adesso quindi sono 5 le versioni del tutorial coperte dalla traduzione: va detto però che le versioni 3.7 e 3.8 non vengono più modificate da tempo, quindi quelle "calde" restano 3. 

Anche se il mio lavoro di traduzione non ha suscitato l'interesse che mi auguravo (e soprattuto l'interesse a collaborare!), devo dire che mi dà comunque soddisfazione mantenerla aggiornata e quindi non ho problemi a continuare da solo, per i pochi (pochissimi) interessati. Del resto, il mio sistema di sincronizzazione con Git mi toglie un sacco di fastidi, e anche quest'ultimo aggiornamento particolarmente delicato non mi ha preso più di un paio d'ore. 

E anche "match" è in arrivo...

Una delle novità più attese per Python 3.10 è la PEP 634 che introduce un meccanismo di "pattern matching" e una nuova parola chiave: "match", appunto. 

Detto in breve, potrebbe sembrare un equivalente delle istruzioni "di switch" ("case" etc.) di altri linguaggi. In realtà è una struttura molto più sofisticata e potente, che permette di fare veramente delle cose interessanti. Per il momento ho solo dato un'occhiata a qualche articolo, ma quello che ho visto mi ha veramente interessato. 

L'istruzione "match" è documentata nel tutorial, ovviamente solo a partire dalla versione per Python 3.10. Dal momento che anche questo nuovo paragrafo è stato tradotto... beh, credo proprio che sia il primo testo in Italiano che affronta estesamente l'argomento! (Vedete che vantaggi, a seguire la mia repo GitHub!). Potete comodamente farvi un'idea di "match" anche in Italiano, leggendo qui la presentazione che ne fa il tutorial. Ma ci sono numerosi altri casi d'uso altrettanto interessanti...

Niente più "master", finalmente.

Infine, una novità di forma, ma che personalmente saluto con molta soddisfazione. Python ha approfittato del fork del nuovo branch 3.10 per eliminare una volta per tutte il suo "master" branch (la soluzione tecnica era stata proposta da Zachary Ware ormai due anni fa). Adesso il branch principale della repository di Python si chiama "main", rinunciando definitivamente a una terminologia involontariamente razzista. 

Questo cambio di nome va incontro anche a una policy ufficiale di Git (e quindi GitHub), dove ormai da tempo le nuove repository vengono create con il nome di default "main" e non più "master", e per quelle vecchie si invita a cambiare nome

In realtà è da anni che la comunità degli sviluppatori, nel complesso, cerca di liberarsi dalle terminologie "poco sensibili" che erano ormai entrate nell'uso (master/slave, blacklist/whitelist...). Il movimento Black Lives Matters ha accelerato questi cambiamenti, e la comunità Python, come di consueto, è stata una delle più sensibili e reattive sul tema. 

Ora, mi rendo perfettamente conto che da noi c'è sempre questa moda di dire, con un bel po' di spocchia, che queste americanate politically correct non sono davvero importanti, che quello che conta è sempre qualcos'altro (e non si specifica mai che altro), eccetera. In questo periodo di Europei di calcio, abbiamo visto questo esercizio di benaltrismo fin troppo spesso, come sicuramente saprete. 

Ma intanto i simboli sono pur sempre simboli, e se possiamo intervenire perché non farlo? Benissimo quindi la decisione di rinunciare a "master". La repository della mia traduzione non si è ancora adeguata per il momento, perché volevo prima di tutto riportarla in sincrono. Ma nel prossimo futuro, magari tra qualche giorno, conto senz'altro di cambiare anch'io, e lo farò con una piccola dose di soddisfazione personale: non conterà niente, ben altre sono le cose importanti... ma intanto la piccola folla di sette persone (!!) che hanno messo una star sulla mia repo, lo saprà. Ed è già qualcosa, in attesa di tutto il "ben altro".


Commenti

  1. Interessante quel match, appena passa a "stable" il 3.10 lo proverò, ovviamente, ho già approfittato del tutorial 3.10, un nuovo grazie per il Tuo lavoro.
    Per altro, è sempre un piacere leggerTi

    RispondiElimina

Posta un commento

Post più popolari