Ho visto questa bella immagine qui . Ho imparato che tutti i compilatori che supportano la lingua .net convertono il codice sorgente in formato CIL
. Ora Microsoft non introduce mai .NET
per tutto il sistema operativo scrivendo un CLR per tutti i sistemi operativi. Allora 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 Questo tipo di architettura ha il suo prezzo. Ridurrà le prestazioni, vero? Java lo fa per mantenere l'indipendenza dalla piattaforma, per quale motivo .NET lo fa? Perché non mantenere un semplice compilatore semplice come C. Qualsiasi modo richiederà anche un compilatore per convertire il codice in CIL se ho bisogno di aggiungere qualsiasi nuova lingua, l'unica differenza che farebbe è la lingua di destinazione. Tat's all.