Grazie per l'A2A
C'è già un sacco di buone risposte sulle specifiche del software, quindi permettetemi di essere un po' astratto (una battuta sul software per gli addetti ai lavori)
Direi che tutto il software riguarda la formalizzazione di causa ed effetto. Quando si esegue un programma software le cose accadono sempre e solo per una ragione. Un esempio di base potrebbe essere quando un utente clicca su un pulsante - esegue una serie di comandi.
Ci possono essere molti trigger nascosti che sarebbero difficili da trovare per qualcuno che non sa come programmare. Per esempio in Excel il codice viene eseguito quando una cella perde quello che noi chiamiamo 'focus' (qualsiasi cosa che non sia la cella corrente è selezionata) questo codice aggiornerà tutti i valori delle formule nel foglio di calcolo.
Ora qualcuno dirà che gli eventi casuali non sono innescati... ma lo sono... come un crash del computer.
Quando si esegue un'istanza di codice che utilizza le risorse del computer, utilizza tutte le risorse del computer e il computer si blocca. Se un essere umano avesse la pazienza potrebbe probabilmente capire esattamente quando un computer andrebbe/andrebbe in crash... ma che senso avrebbe?
Per concludere, il software funziona formalizzando e scrivendo cause ed effetti.
Ho sete ora (causa) quindi vado a prepararmi una tazza di tè (effetto)
In realtà fare una tazza di tè è ciò che fa la programmazione