Mattoz ma ormai ci sono modi e strumenti (gli IDE in primis)
Al di là del fatto che trovi i maniaci di vi per i quali anche gli IDE sono il demonio perché nati dopo gli anni '70 e soprattutto sotto DOS/Windows, debugger, profiler, analizzatori statici e dinamici del codice, test automatici, sono alla fine "aiuti" ma possono sopperire solo fino ad un certo punto a design ormai obsoleti - Rust nasce per risolvere a monte molti dei problemi di C. Non sono un fanatico di Rust, e non mi piace tanto l'idea di inventarsi sempre nuovi linguaggi invece di far evolvere quelli esistenti, ma capisco l'esigenza di ripensare certi assunti per le necessità di oggi e non quelle del 1970.
IMHO Il fatto che C abbia cessato in pratica di evolvere è una pazzia che dimostra la sclerotizzazione di una certa parte di IT. Se si confronta la forte evoluzione negli anni 70-80, e invece la totale involuzione a partire dalla fine degli anni '90, ci si accorge che forse non è stata imboccata la strada migliore. Ma non a caso è il periodo nel quale si è smesso di fare soldi vendendo software e si è cominciato a farli accumulando dati per vendere pubblicità.
Mattoz ma nella JVM hanno una performance di tutto rispetto; e le performance di esecuzione non sono così lontane dai compilati in tante casistiche.
Sì, forse quando il codice è jitted e totalmente autocontenuto, e non deve lavorare troppo con la RAM. Checché ne dicano, la differenza di prestazioni di una applicazione nativa e una Java o C# si nota ancora eccome - così come la richiesta di risorse hardware. Certo, con Java è più facile far programmare Ramesh a Mumbai e pagarlo due rupie senza che possa fare troppi danni, o lo junior locale - che è quello che interessa alle grandi aziende di "consulenza".
Mattoz osso sorvolare per la quantità di linguaggi che girano sulla JVM, per la portabilità
Sì - ma non chiamerei "moderna" la loro gestione della memoria. Hai un trade-off, prestazioni/portabilità - può essere tranquillamente accettabile per certe applicazioni. ma io non li trovo per niente moderni, ala fine è l'idea di UCSD Pascal che è del 1977.
Mattoz Secondo me tanti di questi difetti possono essere sorvolati per il momento (tipo la questione banale delle stringhe in C).
Sai quanti exploit devastanti sono dovuti ad errori nella gestione di stringhe e array/buffer in C? Basta guardare ora quante versioni delle stesse funzioni per la gestione ci sono oggi con vari livelli di controlli e safety.... ma spostano solo la soluzione del problema verso il programmatore. E basterebbe poco per far fare il lavoro invece al compilatore.