Profilo di Daniele aka Palmux

Nome Daniele aka Palmux
Indirizzo email ask@me
AvatarAvatar utenti
Messaggi1388
  • Python 3.15 è qui: Le 3 novità che vi faranno dire "finalmente"
    Forum >> Notizie
    Avete presente quella sensazione quando scaricate una nuova release di Python e vi chiedete: "Ok, ma cosa cambia davvero per me nell'uso di tutti i giorni?". Tra miglioramenti sotto il cofano, correzioni di bug e PEP dai nomi esotici, Python 3.15 porta con sé una valanga di novità. Ma niente panico, abbiamo fatto il lavoro sporco per voi e abbiamo estratto le tre funzionalità più rilevanti che cambieranno il modo in cui scriviamo codice.

    Mettetevi comodi, prende una tazza di tequila e vediamole insieme.

    1. Importazioni "Lazy": Perché correre quando si può aspettare?

    Avete presente quando aprite un'app da riga di comando e ci mette tre secondi di troppo prima di rispondere, solo perché all'inizio del file c'era un import pandas o un import json mai usato? Con la nuova sintassi della PEP 810 arriva la parola chiave lazy. In pratica, dite a Python: "Ehi, ti dico già cosa mi servirà, ma non caricarmelo in memoria finché non lo uso davvero."
    # Ora possiamo fare così:
    lazy import json
    lazy from math import sqrt
    Finché non toccate json o sqrt, Python non perde tempo a caricare i moduli. È la svolta perfetta per velocizzare l'avvio di CLI, script veloci e server di sviluppo, in altre parole è stata sdoganata una po' di sana procrastinazione direttamente nel linguaggio.

    2.frozendict: Il dizionario blindato che mancava

    Quante volte vi è capitato di voler usare un dizionario come chiave di un altro dizionario o all'interno di un set, per poi sentirvi dire da Python: "Mi dispiace, i dict sono mutabili, niente hash!"? La soluzione storica era fare acrobazie strane con le tuple o le dataclass congelate. Con la PEP 814, Python 3.15 introduce finalmente frozendict direttamente tra i tipi integrati (built-in):
    # Un dizionario a prova di bomba!
    config = frozendict({"versione": 3.15, "stato": "super_cool"})
    
    # Provate a modificarlo e vi beccate un bel TypeError:
    config["versione"] = 3.16  #Impossibile

    Essendo immutabile, se tutte le sue chiavi e valori sono hashable, lo diventa anche lui. Questo significa che ora potete usare frozendict come chiave dentro altri dizionari senza dover inventare la ruota ogni volta. Pulito, sicuro e stiloso.

    3. Unpacking nelle Comprehension: Addio nidificazioni da incubo

    Chiunque abbia scritto Python per più di due settimane si è scontrato almeno una volta con le list comprehension nidificate. Quella sintassi tipo [x for sub in lista for x in sub] che richiede due minuti di riflessione filosofica ogni volta che la si legge. Ma con la PEP 798 arriva l'operatore di unpacking (*) direttamente dentro le comprehension.
    # Abbiamo una lista di tuple/liste nidificate:
    dati_nidificati = [(1, 2), [3, 4], (5, 6)]
    
    # Prima: sintassi da mal di testa
    # flat = [valore for sottolista in dati_nidificati for valore in sottolista]
    
    # Ora: magia pura
    flat = [*sub for sub in dati_nidificati]
    
    print(flat)  # [1, 2, 3, 4, 5, 6]
    Funziona su liste, set, dizionari e generatori. Il codice diventa immediatamente più leggibile, sintetico ed elegante. Come si fa a non amarlo?


    In conclusione Python 3.15 dimostra ancora una volta che il nostro linguaggio preferito sa come evolversi mantenendo la sua promessa storica: rendere la vita dello sviluppatore più semplice e piacevole.

    E voi quale di queste tre novità non vedete l'ora di provare nei vostri progetti? Fatecelo sapere nei commenti... o anche no, sentitevi liberi.
  • Re: AI e spam: benvenuti nell’era del contenuto infinito
    Forum >> Blog
    Un saluto a chi passa, ed un grazie a Voi
    Qualcuno direbbe: restiamo umani o forse era resteranno gli umani, boh...
  • Re: Consiglio su documentazione
    Forum >> Principianti
    Ciao F M, ci eravamo già sentiti via email, ma ti mando anche il mio personale benvenuto.

    Oltre alle giustissime considerazioni ed ai consigli ricevuti, ti aggiungo due risorse: una cartacea ed una online.

    La prima è quella che ultimamente è la mia risorsa preferita Python-Corso Intensivo (Python Crash Course) che trovo davvero una lettura irrinunciabile. Certo sono della vecchia scuola lo ammetto, avere un libro sulla scrivania mi tranquillizza.

    Poi ti lascio un link che so che apprezzerai molto Python ABC ed il nome già spiega tanto.

    Ancora benvenuto ed a presto.
  • Python 3.15: il JIT torna "on track" e punta a migliorare le performance
    Forum >> Notizie
    Il team Python continua a lavorare sul miglioramento delle performance del linguaggio, e una delle novità più interessanti riguarda il JIT (Just-In-Time compiler) in sviluppo per Python 3.15.

    Secondo gli ultimi aggiornamenti ufficiali, il progetto del JIT è tornato "on track" dopo alcune difficoltà iniziali, con progressi concreti nello sviluppo e nell’integrazione con l’interprete.

    L’obiettivo del JIT è quello di ottimizzare dinamicamente l’esecuzione del codice Python, compilando parti del programma in una forma più efficiente durante il runtime.

    Si tratta di una tecnologia già ampiamente utilizzata in altri linguaggi come Java e JavaScript, e rappresenta uno dei passi più importanti per migliorare le performance di Python senza rinunciare alla sua semplicità.

    Il lavoro sul JIT si affianca alle altre ottimizzazioni introdotte nelle versioni recenti, come l’adaptive interpreter, contribuendo a rendere Python sempre più competitivo anche in contesti dove la velocità è un fattore critico.

    Python 3.15 è attualmente in fase alpha, e sarà interessante vedere come queste innovazioni evolveranno nei prossimi mesi in vista del rilascio stabile previsto per il 2026.

    Se il percorso continuerà in questa direzione, il JIT potrebbe diventare uno degli elementi chiave nel futuro delle performance del linguaggio.
  • Python si semplifica: arrivano i frozendict e addio alle "dead batteries"
    Forum >> Notizie
    Python continua la sua evoluzione non solo in termini di performance, ma anche di pulizia e coerenza del linguaggio.

    Tra le novità più interessanti emerse nelle ultime versioni troviamo due cambiamenti che, pur non facendo rumore come il JIT o il no GIL, raccontano molto bene la direzione che Python sta prendendo.

    Da un lato, è stata accettata una proposta (PEP 814) per introdurre finalmente i cosiddetti "frozendict" direttamente nel linguaggio (dalla versione 3.15). Come suggerisce il nome, si tratta di dizionari immutabili, ovvero strutture dati simili ai classici dict ma che, una volta creati, non possono essere modificati. Un concetto già presente in Python con i frozenset, ma che finora mancava per i dizionari. È una funzionalità richiesta da anni, soprattutto in contesti dove l’immutabilità è importante, come nella programmazione funzionale, nella gestione delle configurazioni o come chiavi in strutture dati più complesse.

    Dall'altro lato, Python sta portando avanti un lavoro meno visibile ma altrettanto importante: la rimozione delle cosiddette "dead batteries". Con questo termine si indicano moduli della standard library ormai obsoleti, poco utilizzati o mantenuti con difficoltà. Nelle versioni più recenti, in particolare Python 3.14, molti di questi componenti sono stati definitivamente rimossi. Il risultato è una libreria standard più snella, più sicura e più facile da mantenere.

    Questi cambiamenti raccontano una direzione chiara: Python non sta solo aggiungendo nuove funzionalità, ma sta anche cercando di diventare un linguaggio più pulito, moderno e coerente.

    Meno legacy, più chiarezza, ed è proprio per questo (o anche per questo) che dopo più di 30 anni, Python continua a restare così rilevante.
  • Re: Chiedo consiglio su come approcciare ad un "problema"
    Forum >> Programmazione Python >> Scripting
    Beh ... non posso certo dire di aver risolto ma ho trovato una introduzione interessante all'argomento che penso possa essere utile e, pertanto, segnalo.
    Hai detto "buono", interessante.
  • Re: AI e spam: benvenuti nell’era del contenuto infinito
    Forum >> Blog
    Caro mio, ogni considerazione è del tutto legittima e sacrosanta, ci mancherebbe altro.

    Detto questo, il mio unico consiglio, del tutto non richiesto, che mi sento di dare a chiunque nel nostro settore, è di non restare ancorato a posizioni anacronistiche.

    Quando arrivano rivoluzioni di questo tipo, il primo istinto è quasi sempre quello di negare, far finta di niente o denigrare, per poi accorgersi che si tratta di strumenti capaci di costruire e non solo di distruggere.

    Conviene quindi restare ricettivi e osservare cosa ci riserverà il futuro.

    Credo che queste AI, o IA, se vuoi dirla all’italiana, siano qui per restare e per cambiare profondamente il nostro approccio.

    Sta poi a noi decidere se usarle per appiattire il pensiero o per amplificarlo.

    I miei due centesimi.

    Sempre lieto di poter scambiare opinioni.

    A presto.
  • Re: Python diventa sempre più veloce: cosa sta cambiando davvero
    Forum >> Notizie
    L’apprendimento continuo dovrebbe essere alla base del pensiero di ogni informatico, sia per professione che per diletto.

    Oggi, ancora più di ieri, fermarsi alle proprie conoscenze (al proprio “orticello”) e non voler approfondire lo sconfinato mondo che ci circonda è quasi delittuoso; anzi, dal punto di vista lavorativo, è anche piuttosto pericoloso.

    “Chi si ferma è perduto” direi che calza a pennello per qualsiasi ruolo nel meraviglioso mondo dell’IT. Se poi lo fai per rifiuto verso questa o quella tecnologia… Houston, abbiamo un problema, e anche bello grosso.

    Oggi è l’AI, ieri era il web 2.0, il giorno prima l'accesso/scoperta di internet e quello prima ancora il passaggio dai calcolatori giganti ai personal computer. Insomma, ogni periodo porta con sé una dose di cambiamento e ricerca, e il nostro compito è quello di restare aperti, continuando ad apprendere.

    Almeno fino al giorno in cui chiuderemo gli occhi per l’ultima volta, a quel punto saremo esentati. :O
  • Python diventa sempre più veloce: cosa sta cambiando davvero
    Forum >> Notizie
    Per anni Python si è portato dietro una fama difficile da scrollarsi di dosso: potente, versatile, ma non esattamente il linguaggio più veloce del mondo. Negli ultimi anni però qualcosa è cambiato. E non poco.

    Dalla versione 3.11 in poi, Python ha iniziato a ricevere miglioramenti significativi in termini di performance, grazie a una serie di ottimizzazioni dell’interprete che stanno rendendo il linguaggio sempre più competitivo anche in scenari dove prima non era la scelta ideale.

    Secondo i dati ufficiali del team Python, Python 3.11 ha introdotto miglioramenti medi intorno al 10-60% rispetto alla versione 3.10, grazie a un nuovo interprete più efficiente e a tecniche come l’adaptive specializing interpreter.

    Le versioni successive, come 3.12, 3.13 e 3.14, hanno continuato su questa strada, lavorando su:

    - ottimizzazione dell’esecuzione del bytecode
    - miglior gestione della memoria
    - riduzione dell’overhead nelle chiamate di funzione
    - miglioramenti nelle strutture dati interne

    In molti casi reali, questi interventi si traducono in applicazioni sensibilmente più rapide, senza richiedere modifiche al codice esistente.

    Ma le novità più interessanti riguardano due cambiamenti strutturali molto importanti.

    Il primo è il superamento del Global Interpreter Lock (GIL).

    Con Python 3.13 è stato introdotto ufficialmente il supporto al cosiddetto “free-threading”, ovvero una modalità opzionale dell’interprete che permette di eseguire codice Python senza il GIL.

    Questo non significa che il GIL sia sparito: la modalità tradizionale resta quella predefinita, soprattutto per garantire compatibilità con l’ecosistema esistente.

    Tuttavia, il fatto che il supporto sia ora parte ufficiale del linguaggio segna un passaggio storico: Python può finalmente evolvere verso un vero parallelismo multi-thread anche nelle applicazioni CPU-bound.

    Il secondo elemento chiave è l’introduzione iniziale di un JIT compiler (Just-In-Time).

    Sempre a partire da Python 3.13, sono state introdotte le basi per un sistema di compilazione JIT che permette di ottimizzare dinamicamente l’esecuzione del codice.

    Il JIT è una tecnologia già utilizzata in linguaggi come Java e JavaScript, e consente di tradurre parti di codice in forma più efficiente durante l’esecuzione, migliorando le performance senza interventi manuali da parte dello sviluppatore.

    Anche in questo caso siamo nelle prime fasi, ma il potenziale è enorme: combinato con le altre ottimizzazioni, il JIT rappresenta uno dei tasselli fondamentali per rendere Python sempre più competitivo anche in termini di velocità pura.

    In altre parole, Python non sta solo diventando più veloce, sta cambiando profondamente il modo in cui viene eseguito. E, fatemelo scrivere con un po' di orgoglio, per una volta, migliorare le performance non significa scrivere codice più complesso.

    Significa semplicemente aggiornare Python.
  • Re: Pythonisti tocca a voi!
    Forum >> Notizie
    Eeeeeh, sei una colonna portante del forum, altroché mezza tacca.

    Un caro saluto.