Vai al contenuto
Leo

Appendici

Appendice C — Un confronto onesto con Python

Leo gira sull'interprete Python, e con Python condivide molto DNA. È quindi naturale chiedersi: cosa cambia davvero? Questa appendice risponde senza marketing, nello stesso spirito della scheda PARITA_PYTHON.md del progetto, che classifica ogni confronto come migliore, pari, indietro o mancante. Se conosci già Python, qui trovi la mappa; se non lo conosci, questa pagina ti dice dove Leo è più di una semplice traduzione.

La differenza più evidente: la lingua

La cosa che salta all'occhio è che Leo è in italiano — parole chiave, errori, libreria, documentazione. Non è una patina: cambia l'esperienza di chi impara e di chi rilegge. if/elif/else diventano se/altrimenti se/altrimenti; for x in diventa per ogni x in; True/False/None diventano vero/falso/nulla. Un messaggio d'errore in italiano, con la riga corretta già proposta, è un'altra cosa rispetto a un Traceback inglese. Questo è il terreno in cui Leo è, per il suo pubblico, semplicemente migliore.

Dove Leo fa di più (migliore)

Alcune scelte di Leo risolvono di serie problemi che in Python richiedono attenzione o import:

  • Denaro esatto. In Python servono from decimal import Decimal e qualche cautela; in Leo soldi("0.10").piu(soldi("0.20")) dà 0,30 € esatto, già formattato all'italiana, senza import.
  • Frazioni di serie. frazione(1, 3) è nel linguaggio; in Python serve from fractions import Fraction.
  • Costanti vere. costante IVA = 22 non si può riassegnare, e se ci provi è un errore chiaro; in Python la costante è solo una convenzione (IVA = 22 maiuscolo) che nulla impedisce di cambiare.
  • Niente conversioni silenziose. "3" + 4 in Leo è un errore spiegato; in Python è un TypeError più scarno, e altri casi di conversione implicita possono nascondere bug.
  • Errori che insegnano. Messaggi in italiano con suggerimento e, spesso, la riga già corretta; l'autocorrezione e leo controlla colgono molti sbagli prima di eseguire.
  • Libreria inclusa. Statistica, date all'italiana, numeri in lettere, password, impronte, tabelle, QR: tutto di serie, mentre in Python molte di queste cose sono pacchetti esterni da installare.
  • Parallelismo sicuro. I lavori in parallelo sono isolati per costruzione: non possono pasticciare con i dati altrui, e Leo lo impedisce prima di eseguire. È più difficile farsi male che con i thread di Python.

Dove sono alla pari

Molto del cuore del linguaggio è equivalente, perché sotto c'è lo stesso motore: interi di dimensione illimitata, l'imprecisione dei decimali IEEE-754 (identica a Python), le liste e i dizionari, le comprensioni, le funzioni come valori, le chiusure, le eccezioni con prova/cattura/infine, i moduli. Chi viene da Python ritrova gli stessi concetti con nomi diversi. Lo slicing ha una differenza di stile: in Leo a..b include entrambi gli estremi, mentre in Python a:b esclude il secondo — una scelta di Leo per leggersi come l'italiano «da...a».

Dove Leo è indietro, e dove manca qualcosa

Onestà vuole anche questo. Python ha un ecosistema sterminato — centinaia di migliaia di pacchetti — e per i domini specialistici (calcolo scientifico pesante, machine learning, web server su larga scala) resta la scelta di riferimento. Leo offre un ponte (importa python "pacchetto") proprio per non rinunciarvi, ma è una funzionalità da esperti, non il terreno dove Leo dà il meglio. Alcune funzionalità molto avanzate di Python (metaprogrammazione spinta, certi protocolli del linguaggio) in Leo non hanno un equivalente diretto, per scelta: la semplicità è un valore, e aggiungere potenza che pochi usano al prezzo della chiarezza non sarebbe nello spirito del progetto.

Come scegliere

La regola pratica è semplice. Se il tuo scopo è imparare a programmare, insegnare, scrivere strumenti personali, programmi per la scuola, app con finestre per il PC o il telefono, e farlo in una lingua che capisci senza attrito — Leo è pensato apposta per te, e in molte di queste cose fa meno fatica di Python. Se il tuo scopo è integrarti in un grande progetto Python esistente, o sfruttare un pacchetto specialistico dell'ecosistema, Python resta la via maestra — e Leo, se vuoi, ti ci accompagna con importa python.

Non è una gara a somma zero: Leo è costruito su Python, e questo significa che imparando Leo hai già un piede nel mondo Python, con la gentilezza dell'italiano a farti da guida.