Impariamo a programmare: Python #1 - Il miglior linguaggio per principianti

E così hai deciso di approcciarti al mondo del coding?

Hai fatto bene.

Si: hai fatto bene, perché il coding è fighissimo.

Ora, aldilà di qualsiasi mia opinione personale, ci sono mille buoni motivi per imparare a programmare, al giorno d'oggi. Possiamo tra questi annoverare:

  • La costante crescita del mercato del lavoro della tecnologia e della programmazione
  • La possibilità di aumentare la propria qualità della vita (nonché quella dell'intera società), sviluppando programmi utili
  • Entrare a contatto con una realtà piena di persone meravigliose, pronte ad aiutarti ed a supportarti, nonché stringere con te veri e propri legami di amicizia
    PS: avrete un nuovo migliore amico e si chiamerà "StackOverflow" ma di questo parleremo più avanti...
  • Il porsi davanti ad una sfida, mettersi in gioco, imbarcarsi in un'avventura ricca di complessità, con lo scopo ultimo di migliorarsi

Cosa stiamo aspettando, quindi? Partiamo!

Un meraviglioso wallpaper di Subgrafik!

Iniziamo con una premessa:

Sto per fornirvi una lezione completamente gratuita su Python. Spero che la gradiate e soprattutto che possa esservi utile per realizzare i vostri scopi: che siano essi passare l'esame di Computer Science, costruire un progetto di automazione per la gestione dei vostri documenti Excel o semplicemente ampliare la vostra cultura. Faccio tutto questo per voi e gratis, tuttavia questo sito comporta dei costi di gestione non indifferenti, pertanto vi chiederei cortesemente di tenere in considerazione l'idea di disabilitare l'AdBlocker, qualora lo stiate usando. Questo mi permetterà non solo di mantenere il sito, ma anche di continuare a fornirvi questo contenuto gratuito, mettendo sempre il mio massimo impegno!

Il dilemma: qual è il miglior linguaggio di programmazione?

Molti vi diranno che dipende dal target, dalla struttura e dimensioni del progetto, dalle necessità ed ambizioni personali, etc. Ma qual è la verità?

PHP?

Perl? Java? Python?
C++?
C? R? Ruby?
Javascript? Pascal? SQL?
Braille?

La verità è che dipende.

Perché effettivamente, al giorno d'oggi, ci sono tantissime possibilità di implementazione (termine di cui si abusa, in informatica, che indica il processo con cui un principio di funzionamento viene effettivamente realizzato, nero su bianco bianco su nero, tramutando la propria idea in strategia e la strategia in codice) e di deployment (metodo di distribuzione del proprio prodotto, ovvero l'utilizzo di una piattaforma ove il risultato del codice scritto si manifesta all'utente finale).

Quindi, per ogni evenienza, esiste uno stack ottimale! (Lo stack indica tutti gli strumenti, tra cui linguaggi di programmazione, piattaforme, risorse, etc. che tengono in piedi un progetto. Un famosissimo stack è lo stack LAMP, che sta per Linux-Apache-MariaDB-PHP. Se non ci state capendo niente, non preoccupatevi, vi sarà tutto chiaro nelle prossime lezioni del corso, ma per fare un esempio pratico: potete paragonare lo stack ad uno zaino, nel quale mettiamo i componenti fondamentali per vivere la nostra avventura!)

Però da qualche parte bisognerà pure iniziare! Non è che possiamo crogiolarci in questo dilemma e rimanere statici sulle nostre poltrone... per tale ragione, vi chiederò di credermi momentaneamente sulla parola, se vi dirò che vi conviene iniziare con Python.

Cos'è Python?

Python è un linguaggio di alto livello, interpretato, ad oggetti, creato da un certo olandese di nome Guido (What ?) nel 1991.

Un linguaggio di alto livello!

Un linguaggio di alto livello è definito come molto diverso da quello che i computer, nativamente, parlano. Le CPU dei computer ai quali chiediamo di eseguire certe istruzioni, infatti, parlano il linguaggio macchina, ovvero qualcosa di simile a 01001000101000101001010010... I linguaggi di programmazione di alto livello, infatti, sono molto più simili alla lingua parlata da noi esseri umani e sono un ottimo, nonché potentissimo, ponte tra il programmatore e la macchina

Solo, mai capito... ma interpretato!

In base a quanto detto sopra, appare necessario ad un certo punto convertire il linguaggio di programmazione da noi scritto, in linguaggio macchina. Questo processo è detto compilazione e richiede del tempo, che spesso rende difficile eseguire rapidamente il nostro programma, per testarlo. Python, tuttavia, nella norma non viene compilato, in quanto viene tradotto "in diretta" in un linguaggio semi-macchina detto bytecode, il quale viene poi eseguito da una CPU virtuale, ovvero: Python Virtual Machine, che otteniamo quando installiamo Python sul nostro computer. Questa macchina virtuale è quindi in grado di emulare un processore reale, con la differenza che anzichè parlare il codice binario, parla il bytecode. Questo compromesso è necessario per permettere all'operazione di traduzione in live, di avvenire in tempi accettabili. Il vantaggio principale di questo approccio è che il programma può essere testato molto rapidamente: immediatamente dopo aver scritto il codice.

Nota: Quello descritto sopra è il funzionamento classico di Python. Ci sono infatti molteplici modi di ottenere il medesimo risultato, Python infatti può anche essere compilato.

Materialista, orientato agli oggetti!

Nell'ambito della programmazione, un oggetto è paragonabile ad una scatola. A questa scatola può essere assegnato un nome e può appunto contenere vari oggetti, che siano essi statici (come cornici per foto o portachiavi, oppure oggetti dinamici, che possono essere attivati e svolgere una funzione, come un asciugacapelli. Richiamando il nome di questa scatola, potremo comodamente portare con noi tutti gli oggetti che questa scatola contiene, per poi prenderne qualcuno in particolare.

Perché Python?

Arriviamo al dunque: perché partire proprio da Python?

  • È uno dei linguaggi di programmazione più simile alla lingua parlata da noi umani. Questo vuol dire che possiede pochissime e semplici regole di sintassi, permettendoci di dedicare la concentrazione massima al cosa stiamo facendo e non necessariamente come.
  • È disponibile su tutte le piattaforme (Windows, macOS, Linux, etc.) e grazie al fatto che funzioni con Python Virtual Machine, è cross-platform, quindi il vostro lavoro effettuato su Mac sarà compatibile con qualsiasi altro sistema!
  • È flessibile, molto flessibile: Python è stato adattato per servire a qualsiasi scopo. È infatti utilizzato da matematici, biologi, economisti, insegnanti e persino dai bambini!
  • È uno dei linguaggi di programmazione più diffusi al mondo. Questo significa che avrete a disposizione una gigantesca community di persone che hanno già provato, con successo, a fare quello che state cercando di fare e che sono quindi pronte a darvi una mano. È paragonabile all'imparare una lingua famosa come l'inglese: su internet troverete tantissime informazioni, adatte a qualsiasi vostro dubbio. Più complesso, invece, sarebbe ottenere informazioni su come usare il congiuntivo in mongolo.
  • Python, come la lingua inglese, è orientato al risparmio. Vale a dire che rispetto a tanti altri linguaggi di programmazione, richiede meno righe di codice totale. Di seguito, un esempio di utilizzo di vari linguaggi, per estrarre le prime due lettere di una parola.

In PHP:

$str = "parola";

echo substr($str, 0, 2);

In Javascript:

var str = "parola";

console.log(str.substr(0, 2));

In Python:

str = "parola"

print(str[:2])

Va bene, ed ora?

Adesso che abbiamo ottenuto un'infarinatura di base su cosa sia Python, come funzioni e perché ci conviene iniziare con esso, possiamo passare alla fase pratica.

Nel prossimo articolo, vederemo insieme come installare gli strumenti necessari per iniziare, come Python Virtual Machine! Ci assicureremo che sarà tutto pronto e poi creeremo il nostro primo programma in Python.