AI e Cyber: quali competenze di programmazione occorrono?

(di Simone Cossu*)
19/03/24

Per quanto possa sembrar banale, la programmazione nasce in risposta alla richiesta di far eseguire compiti alle macchine: gli umani, necessitavano di un'interfaccia semplice per porter parlare con loro.

Inizialmente, dovevamo adattarci molto usando il loro linguaggio (erano i tempi delle schede perforate). Con il tempo arrivarono i signori Kernighan e Richie che, con il loro "C", semplificarono la scrittutta del codice, rendendo il tutto possibile a un pubblico sempre più vasto.

Quale "linguaggio"

Un linguaggio di programmazione non è semplice da scegliere: il processo per la sua elezione è molto simile a quello che mettiamo in opera quando scegliamo un capo di vestiario, deve essere confortevole e, in qualche maniera, ci deve rispecchiare. Inoltre si deve adattare alla circostanza in cui vorremmo indossarlo. Analogamente ogni linguaggio di programmazione ha caratteristiche proprie e deve permetterci di scrivere il codice necessario al nostro scopo finale, nel modo più semplice e efficace possibile.

Python

Python rappresenta un ottimo compromesso tra diverse esigenze. Abbastanza facile da imparare, per via della sua sintassi molto orientata alla lingua inglese, è anche molto espandibile. Mediamente veloce nell'esecuzione del codice, è al tempo stesso traportabile da una architettura all'altra.

Cos'è Python

Python è un liguaggio di programmazione di alto livello orientato agli oggetti. Si adatta molto bene ai diversi usi, che vanno dai piccoli script (programmini che rispondono a semplici esigenze di automatizzazione) sino alle grandi applicazioni (a titolo d'esempio, quelle web).

È un linguaggio di tipo "interpretato", ovvero il codice viene letto e eseguito al volo dal compilatore, una linea dopo l'altra. Questo potrebbe avvicinarlo a linguaggi altrettanto noti come Javascript e PHP. Tuttavia la sua capacità di creazione del bytecode, similmente invece a Java, gli permette una sorta di compilazione del codice scritto, più vicino a quello della macchina ma non proprio un compilato. Tanto basta da consentire un miglioramento nelle prestazioni di esecuzione generale.

Come studiare Python

Lo studio di Python non presenta particolari criticità, anzi è stato sviluppato per forzare la sintassi con regole tanto semplici quanto efficaci. Le differenze non sono tuttavia banali.

Nel passaggio a Python occorre dimenticare i terminatori di riga (i famigerati ";"), parentesi per descrivere i blocchi di codice, e forse anche un po' lottare con la sintassi rigida e basata sugli spazi in numero uguale all'inizio delle righe di un blocco. A titolo d'esempio un blocco IF in un linguaggio simile a C verrebbe espresso nel seguente modo: if ( condizione ) { codice da eseguire } else { altro codice da eseguire } mentre Python lo esprime in if condizione: codice da eseguire else: altro codice da eseguire. I due spazi a inizio riga determinano l'appartenenza delle righe allo stesso blocco.

Un trucco molto semplice da parte del suo creatore Guido Van Rossum per eliminare un annoso problema del linguaggio "C" per il quale, la perdita di un terminatore di riga, spesso rappresentava un problema enorme. Strumenti utili (replit) Python arriva con pacchetti installabili facilmente su molti sistemi operativi, sicuramente tutti i più noti. Insieme al compilatore arriva anche un piccolo ambiente di sviluppo chiamato IDLE, essenziale e semplice da usare. Si tratta di uno strumento molto utile per iniziare ma non può reggere una sfida con le soluzioni complesse come Replit, un IDE web, che consente un sviluppo veloce e agevole senza la preoccupazione di dover creare e mantenere l'ambiente in cui si opera.

Replit è dotato di funzioni molto avanzate che sostengono lo sviluppatore addirittura suggerendo esempi di codice da poter riutilizzare velocemente. Permette anche l'esecuzione del codice direttamente sulla piattaforma!

Alternative a Python

Attualmente sono disponbili molti linguaggi di programmazione, ma nessuno ha le caratteristiche di Python. In particolare l'affetto dimostrato dalla sua ampia comunità di sviluppatori, ha reso disponibili nel tempo numerose librerie che espandono le capacità all'infinito e anche all'infinitesimo. Probabilmente è necessario anche evidenziare che Python può anche essere eseguito sui micro dispostivi (MicroPython).

Riferimenti:

https://www.python.org/about/gettingstarted/

https://docs.python.org/3/library/dis.html

https://docs.python.org/3/library/idle.html

https://micropython.org/

https://it.wikipedia.org/wiki/Guido_van_Rossum

https://it.wikipedia.org/wiki/Brian_Kernighan

https://it.wikipedia.org/wiki/Dennis_Ritchie

* Appassionato di informatica sin da piccolo. Ha seguito un percorso scientifico attraversando - e uscendone felice - la grande scuola del Politecnico di Torino. Cercando di mantenere lo spirito dell'eterno studente, lavora nel campo della sicurezza informatica. Adora la programmazione, soprattutto quando opera in vista di una semplificazione della vita dell'uomo, senza minarne l'essenza. Nel tempo libero, si dedica all'automazione di ogni tipo!