Citazione Originariamente Scritto da Smallman_647
Perchè giustamente i software non possono commettere errori? Ma se è risaputo che non esiste un programma senza bug.
Mi basta la domanda per capire a che livelli stiamo parlando... Oltretutto è anche abbastanza grave che un "programmatore" associ questo tipo di domanda alla frase che hai scritto dopo.
La risposta alla domanda? No assolutamente. Un software non commette errori, mai. Un software esegue puntualmente quello che il programmatore ha previsto per lui.

Quello di cui parli tu, bug e tutto il resto, è ancora una volta parte di "errore umano", difetti nella programmazione o stati di esecuzione non previsti (ad esempio con codici parallelizzabili con concorrenza mal gestita) non sono imputabili al "software che non funziona", ma ad errori del programmatore. Una simile confusione potrei capire se l'avesse qualcuno che dell'ambito non capisce granché, ma da un programmatore no.

Citazione Originariamente Scritto da Smallman_647
Quindi, affidarsi in toto ai programmi è da pazzi e te lo dice un programmatore. Ci devono essere sempre uomo e macchina contemporaneamente per ridurre il numero di errori e lasciare alla macchina solo le mansioni ripetitive e non il controllo totale.
Dipende da quello che devi farci. Esiste una branca dell'automazione applicata all'informatica chiamata "automatica" che studia e permette la manipolazione di fenomeni di regolazione automatica, e la rete ne è piena di applicazioni del genere. Le risorse umane in un sistema informativo sono di fatto insostituibili da macchine e calcolatori, ma pensare che ci debbano essere "uomo&macchina" per ogni mansione (a parte quelle "ripetitive", che sono banali) lascia intendere che non hai ben chiaro di come funziona la realtà informatica attuale, dall'inoltro dei pacchetti ai controlli di flusso e congestione (che sono tutto fuorché ripetitivi), tanto per rimanere in ambito della Rete.
Molto più di quello che pensiamo è oggigiorno automatizzato, ed escludendo casi sfortunati come quelli citati prima, tutto l'apparato informatico funziona in maniera lodevole (che non vuole dire "non_migliorabile").

Gli esempi che hai posto tu, comunque, sono validissimi e fanno capire fino a che punto si spinge l'imprevedibilità dell'esecuzione di software molto estesi, ma ti invito ancora una volta a capire che anche questi discendono da una cattiva implementazione. I casi che hai riportato sono molto significativi (e non sono gli unici, comunque), ma la ricerca esiste anche per questo: imparare dagli errori e sviluppare soluzioni efficaci ed efficienti. Se è vero che a causa di errori di progettazione si sono verificati episodi che si potevano anche evitare, è pur vero che il Testing è una fase che proprio in merito a queste circostanze verificatesi ha acquisito un enorme valore.

Vabbè, in breve, Internet è un'innovazione positiva.