Home
Perché per programmare dovresti scegliere Python

28 Giugno 2019

Perché per programmare dovresti scegliere Python

di

Questione di confronto con gli altri linguaggi, di che cosa Python fa bene e di dove sta questo linguaggio nel grande schema delle cose.

In qualunque campo operi, andrà bene

Esistono centinaia di linguaggi di programmazione, maturi come C e C++, o recenti come Ruby, C# o Lua, o ancora giganti da azienda come Java. Scegliere un linguaggio da imparare è difficile. Non esiste un linguaggio che sia la risposta giusta a tutti i possibili problemi, ma Python è una buona scelta in molti casi ed è anche ben posizionato per chi impara a programmare. Python è usato da centinaia di migliaia di programmatori in tutto il mondo e il loro numero cresce continuamente.

I motivi di questo successo sono molteplici. Python funziona ovunque, sia Windows, Linux/UNIX, Mac o altro, da supercomputer a cellulari. Permette di sviluppare piccole applicazioni e prototipi veloci, ma è strutturato per la creazione di programmi di grandi dimensioni. È munito di una interfaccia utente grafica semplice da usare, librerie per la programmazione del web. Meglio di tutto, è gratis.

Cose che Python fa bene e possono tornarti utili

Python è un linguaggio di programmazione moderno, sviluppato da Guido van Rossum negli anni novanta, che deve il nome a un gruppo di comici inglesi. Python non è perfetto per qualunque situazione, ma è quasi sempre una scelta molto buona.

Python è facile da avvicinare e da usare

I programmatori abituati a un linguaggio tradizionale si troveranno, con Python, a casa loro. Avranno a disposizione tutti i costrutti a loro familiari, come cicli, istruzioni condizionali, array eccetera. Scopriranno anche come su Python li possano spesso usare più facilmente, per ragioni come le seguenti:

  • I tipi sono associati agli oggetti, non alle variabili. Una variabile può contenere un valore di tipo qualsiasi e una lista può comprendere oggetti di molti tipi differenti (Un tipo è, grossolanamente, la natura del dato; se sia un numero, una sequenza di caratteri, una alternativa logica eccetera). Questo significa anche che il type casting (la dichiarazione esplicita del tipo associato a un dato) solitamente non serve, né il codice che scrivi si troverà ingabbiato in tipi predefiniti.
  • Python lavora normalmente a un livello di astrazione molto elevato. In parte si deve a come il linguaggio è stato costruito e in parte alla disponibilità di una libreria di codice standard di grandi dimensioni, che basta scaricare Python per trovare compresa nel pacchetto. Un programma che scarica pagine web può essere scritto in due o tre righe!
  • La sintassi è semplice. Diventare un esperto di Python richiede tempo e fatica, ma un principiante può imparare molto velocemente il necessario per iniziare a stendere codice.

Python si presta bene allo sviluppo rapido di applicazioni. Capita sovente che il tempo per realizzare una applicazione in Python sia un quinto di quello che avrebbe richiesto, per dire, C o Java, e che anche le dimensioni del codice siano in proporzione. Dipende anche dall’applicazione; un algoritmo numerico che si occupi di aritmetica con numeri interi in un ciclo for non consentirà grandi guadagni di produttività. Per una applicazione di medio calibro, tuttavia, i vantaggi possono risultare significativi.

Python è espressivo

In programmazione, una affermazione come questa vuol dire che una singola riga di codice Python può fare più di una riga in altri linguaggi. Il beneficio dell’espressività è ovvio: meno righe di codice sono da scrivere, più velocemente il progetto arriva a buon fine. Programmi più corti sono anche più facili da manutenere e ripulire da errori.

Per fare un esempio di come questa espressività semplifichi il codice, proviamo a scambiare il valore di due variabili, var1 e var2. In un linguaggio come Java, ci vogliono tre righe di codice e una variabile supplementare:

int temp = var1;
var1 = var2;
var2 = temp;

La variabile temp è necessaria per custodire il valore di var1 quando questo viene sostituito dal valore di var2, prima di metterlo in var2. Non è una complessità terribile, ma leggere le tre righe e rendersi conto che le due variabili hanno scambiato i propri valori non è immediato, neppure per programmatori di lunga data.

All’opposto, Python fa la stessa cosa in una riga, in un modo che rende chiaro che cosa sia avvenuto:

var2, var1 = var1, var2

Questo esempio è elementare, ma si tratta di un vantaggio diffuso su tutto il linguaggio.

Python è completo

Un altro vantaggio di Python è la filosofia tutto compreso relativa alle librerie. L’idea è che, installando Python, si trova pronto tutto quanto serve per lavorare sul serio, senza perdere tempo in installazioni supplementari. La libreria standard di Python contiene moduli per lavorare con email, pagine web, database, chiamate al sistema operativo, sviluppo di interfacce utenti grafiche e altro.

Per esempio, con due righe di Python si può scrivere un server web che condivide i file di una cartella:

import http.server
http.server.test(HandlerClass=http.server.SimpleHTTPRequestHandler)

Gestione di connessioni di rete e HTTP: di serie, come mille altre cose.

Python è multipiattaforma

Abbiamo già scritto che Python gira ovunque. Siccome è un linguaggio interpretato (un singolo comando può essere eseguito immediatamente, senza bisogno di compilazione dell’intero programma), il codice funziona ovunque si trovi un interprete Python e quasi tutte le piattaforme più usate ne possiedono uno. Esistono versioni di Python per Java (Jython) e .NET (IronPython), per esempio.

L’importanza di imparare Python 3

Python è più che maggiorenne e si è evoluto nel tempo. Questo articolo fa riferimento alla versione 3.6.

Python 3, soprannominato Python 3000, è degno di nota perché è la prima versione a rompere la compatibilità con il passato. Il codice scritto per versioni precedenti potrebbe non funzionare e richiedere modifiche. In precedenza, per esempio, l’istruzione print non chiedeva parentesi attorno ai propri argomenti:

print “hello”

In Python 3, print è una funzione e richiede le parentesi:

print(“hello”)

Ci si potrà chiedere perché modificare dettagli come questi per mettere a rischio il funzionamento del codice vecchio. È un cambiamento importante per qualsiasi linguaggio e gli sviluppatori principali di Python ci hanno pensato sopra con attenzione. Vero che Python 3 rompe la compatibilità con il vecchio codice; ma i cambiamenti sono piccoli e in meglio, per rendere il codice più coerente, leggibile e lineare.

Nel caso appena visto di print, il passaggio da istruzione a funzione consente di aggiungere parametri per controllarne il funzionamento. Ora è diventato più semplice inviare un output verso un file e cambiare i separatori di campi e righe. Per esempio, il codice che segue usa la barra verticale (|) per separare gli elementi e #\n come fine riga:

print("hello", "world", sep="|", end="#\n")

Python 3 non è una riscrittura clamorosa del linguaggio, bensì una evoluzione ben pensata. Gli sviluppatori principali hanno anche provveduto a fornire una strategia e strumenti per la migrazione sicura ed efficiente del vecchio codice verso Python 3.

Il Python da imparare è la versione 3, perché è quello migliore e perché sarà la versione dominante per gli anni a venire. Se diamo retta a Python 3 Readiness, 359 delle 360 librerie più diffuse sono già state portate su Python 3. Se serve una libreria non ancora convertita, o se esiste una base di codice consistente scritta in Python 2, possono esserci ragioni per non abbracciare il cambiamento; per un progetto nuovo o per chi comunica a programmare oggi, ha senso scegliere Python 3, che è migliore. Ed è il futuro.

L'autore

  • Naomi Ceder
    Naomi Ceder insegna e utilizza Python dal 2001 e attualmente è presidente del consiglio di amministrazione della Python Software Foundation. Relatrice di livello internazionale su temi quali la comunità Python, l'inclusione e la diversità in campo tecnologico, dirige un team di sviluppo open source per Dick Blick Art Materials.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.

Corsi che potrebbero interessarti

Tutti i corsi
Big-data-analytics-iniziare-bene-cover Corso Online

Big Data Analytics - Iniziare Bene

con Andrea De Mauro

Credi che i Big Data siano una grande opportunità ma che spesso se ne parli a sproposito? Excel ti sta stretto e vorresti fare di più? Andrea De Mauro ti aiuta a fare chiarezza e ti insegna a muovere i primi passi nell'analisi dei Big Data.

Strategie_e_modelli_contrattuali_per_cedere_e_acquisire_software-simone-aliprandi-cover Corso Online

Strategie e modelli contrattuali per cedere e acquisire software

con Simone Aliprandi

Il tuo lavoro è sviluppare software, oppure hai deciso di affidarti a qualcuno per il software che ti serve? È arrivato il momento di preparare un preventivo o di firmare un contratto, ma non sai come comportarti? Il corso di Simone Aliprandi ti viene in aiuto.


Libri che potrebbero interessarti

Tutti i libri

Python

Guida alla sintassi, alle funzionalità avanzate e all'analisi dei dati

46,65

66,89€ -30%

37,91

39,90€ -5%

26,99

di Naomi Ceder

Imparare a programmare con Python

Il manuale per programmatori dai 13 anni in su

28,75

39,99€ -28%

23,75

25,00€ -5%

14,99

di Maurizio Boscaini

Python 3

Guida tascabile al linguaggio di Google, Star Wars e la NASA

14,65

19,89€ -26%

12,26

12,90€ -5%

6,99

di Marco Beri