Programmazione

Programmazione è tutto ciò che ti permette di dare ad un calcolatore dei comandi precisi per fare in modiche lui faccia quello che te desideri. Programmare è una sorta di addomesticare la bestia, per intenderci. La bestia non parla la nostra lingua e non ha la benché minima intenzione di impararla, questo è risaputo, allora per comunicare con lui quello che serve è imparare la sua lingua. Che, detto in modo aulico, consiste nell’imparare i linguaggi di programmazione.

Linguaggi di programmazione
I linguaggi di programmazione rappresentano la lingua con cui possiamo impartire al computer dei comandi e fargli fare quello che vogliamo noi. Con i linguaggi di programmazione possiamo scrivere infatti delle applicazioni utili per quello che vogliamo fare per poi utilizzarle quando servono.
Vi faccio un esempio: vi serve un programma che riesca a calcolarvi dei complessi parametri fluidodinamici con un solo click quando invece, con una semplice calcolatrice, vi servono una serie di calcoli, magari iterativi, che vi portano via del tempo. Ecco che, a questo punto, una bella applicazione scritta ad hoc per questo scopo, con un click, in una frazione di secondo (ovviamente, se avete una carretta di pc può darsi che ci voglia un po' di più!) eccovi il vostro parametro!
A fronte del tempo risparmiato per calcolare il vostro parametro con un solo click c'è il lavoro di compilazione, che non è altro che divertimento e soddisfazione! Divertimento perché leggere e scrivere codice è da sempre e sempre sarà leggero e rilassante, è qualcosa che sta già nella nostra testa, alla nascita ci hanno dato le stringhe, adesso sta a noi portarle fuori dalla nostra testa. Soddisfazione perché non sapete che razza di gusto si possa provare quando vedete che una applicazione che avete scritto funziona alla perfezione!
I linguaggi di programmazione esistenti devono presentare, come requisito base, due elementi fondamentali, ossia le variabili e le istruzioni:

  • Una variabile è un dato o un insieme di dati, noti o meno, già memorizzati o da memorizzare. Ad ogni variabile corrisponde sempre un certo numero di locazioni di memoria (in pratica, degli spazi...) che vengono "prenotate" (cioè allocate utilizzando un termine più adatto) per contenere i dati che si sta elaborando.
    La maggior parte dei linguaggi è in grado di definire le variabili con proprietà differenti, ossia stringhe di testo, numeri (interi o decimali), liste...
  • Una istruzione è invece un comando da eseguire o una funzione.
    Ogni volta che si esegue un'istruzione il calcolatore modifica il suo stato, nel senso che effettua un calcolo o si predispone ad altre istruzioni in modo tale da poter continuare l'esecuzione delle istruzioni presenti all'interno del codice che sta facendo girare.

Dal nulla vedrete prendere forma a tasti clickabili, finestre, barre di scorrimento, creerete file dal nulla!
Al contrario della credenza comune, inoltre, va assolutamente detto che non è per niente difficile imparare un linguaggio di programmazione e non è affatto una cosa solamente da smanettoni! Esistono linguaggi, come ad esempio Python, semplicissimi e quasi senza regole.
A questo punto, non vi resta che provare!

Le sorgenti o codici sorgente
Quando si programma una qualsiasi applicazione non si fa altro che scrivere alcuni file di testo di tipo ASCII. Tali files di testo, una volta scritti, prendono il nome di codici sorgente.
I codici, anche se sono dei testi scritti, non necessitano di formattazioni particolari in quanto la programmazione e l'applicazione finale è totalmente indipendente dalla formattazione del testo presente nella sorgente. Da questo ne deriva che per scrivere una applicazione si può usare qualsiasi editor di testo, come il Notepad di Windows oppure Kate, lo stesso editor utilizzato per scrivere questo sito. La differenza nell'utilizzo di Notepad o di Kate sta nelle funzioni offerte dai due editor: con Notepad non evidenzierete i tags né altre istruzioni particolari, con Kate invece è possibile evidenziare le espressioni con differenti colori, cosa che semplifica notevolmente la scrittura del codice.
Ovviamente, i due editors citati non sono gli unici disponibili, esistono anche altri editor completi come Emacs ad esempio. Oppure esistono editors specifici in base al linguaggio utilizzato, come Dev-C++ che, oltre a permettere la scrittura del codice possono anche interpretare.
Se un editor di codice è in grado di interfacciarsi anche con altri strumenti di lavoro utili alla generazione di un'applicazione finita allora si parla di IDE o ambiente di sviluppo integrato.
Alcuni tipi di linguaggio supportano inoltre la programmazione visuale, la quale permette di creare menù, tasti e finestre per dare all'applicazione che si sta creando una interfaccia grafica (detta anche GUI, ossia Graphical User Interface). Tra questi occorre ricordare il Microsoft Visual Basic oppure Gambas (sotto Linux).
Dopo aver scritto il codice sorgente, per eseguirlo occorre che questo venga letto da un altro programma in grado di capire le istruzioni scritte ed eseguirle. Se il codice è scritto con un linguaggio di scripting allora questo viene interpretato, in alternativa se invece il codice invece può essere compilato si ottiene un file eseguibile che può essere avviato senza l'utilizzo di nessun altro programma esterno.
La compilazione offre degli importanti vantaggi come innanzitutto quello di poter ottenere degli eseguibili molto veloci da utilizzare immediatamente ma c'è lo svantaggio principale nel fatto che bisogna ricompilare ogni volta che si cambia sistema operativo se si vuole rendere disponibile il programma su vari tipi di piattaforme.