Questo post è ispirato dopo una lunga chiaccherata via msn con notini da cui è nato il suo post, era inevitabile il mio contropost.
Tutto è nato dalla discussione sul fatto che le tecnologie java e .net prossimamente si troveranno dappertutto in diversi dispositivi differenti anche dai pc stessi. Domandone: tutto questo è un male ed un bene?
Facciamo un passo indietro, e torniamo agli inizi quando si diffondevano i primi computer e con essi un linguaggio di programmazione che i più anziani hanno visto il linguaggio C oppure ansi C, in realtà poi esistono diversi dialetti di C e diversi compilatori e le cose sono peggiorate con C++ (preferisco chiamarlo C con classi) ed altre classi aggiuntive che venivano introdotte da varie case software (benedette Mfc) per farla breve comunque la peculiarità del C + sempre stata la velocità di esecuzione del codice, una gestione raffinata della memoria ed una attenzione particolare verso le prestazioni del sistema ed alle ottimizzazione delle risorse. Senza tediare con dettagli tecnici "il C dialogava con il ferro,con l'hardware sottostante".
Poi sono arrivati i linguaggi "managed" gestiti da un framework e da una macchina virtuale vedi java con la sua jvm , C# gestito dal CLR ed anche C++ managed insomma una nuova filosofia che stratifica l'applicazione inseririsce meccanismi di controllo sulla memoria con il garbage collector ma contemporaneamente uccide le prestazioni del sistema.
Quì nasce il conflitto con Notini poiche vi sono queste due filosofie la sua rigorosamente "unmanaged" e la mia rigorosamente "Managed".
perchè usare codice managed (C#, C++ managed e VB.net)?
1) si ha una ampia libreria di classi data dal framework
2) lo sviluppo del programma è più veloce
3) la struttura del sistema è più stabile e sicura
4) grazie al fatto di lavorare managed non si deve più pensare a gestire puntatori ed ad ottimizzare la memoria
5) si lavora ad un livello di astrazione di livello più elevato
il lato negativo è la perdita di prestazioni che può essere compensata solo da un hw più potente.
Mi fermo qui e lascio ai veri dev la questione "è meglio usare codice managed oppure unmanaged" sperando che qualcuno possa sopperire alle lacune di questo post scritto da un non dev.
PS: una delle cose cose che mi ha dato più soddisfazioni è stato il porting di progdvb dal C++ a progdvb.net che ne ha permesso una migliore stabilità operativa ( rispetto alle prime versioni con .net è davvero migliorato in stabilità)