Ho visto questa bella immagine qui . Ho imparato che tutti i compilatori che supportano il linguaggio .net convertono il codice sorgente in CILformato. Ora Microsoft non inserisce mai .NETper tutto il sistema operativo scrivendo un CLR per tutti i sistemi operativi. Quindi perché mantenere un tale formato di codice intermedio e un CLR per eseguire quel CIL. Non è un mal di testa da affrontare. Perché Microsoft ha scelto di essere così?
EDIT Questa architettura ha un suo prezzo. Ridurrà le prestazioni, no? Java fa questo per mantenere l'indipendenza della piattaforma, per quale motivo .NET lo fa? Perché non mantenere un semplice compilatore come C semplice. In ogni caso sarà anche necessario un compilatore per convertire il codice in CIL se devo aggiungere una nuova lingua, l'unica differenza che farebbe sarebbe la lingua di destinazione. Tat è tutto.