Я бачив це гарне зображення тут . Я дізнався, що всі компілятори, які підтримують .net мову, перетворюють вихідний код у CILформат. Тепер Microsoft ніколи не приносить .NETдля всіх операційних систем написання CLR для всіх операційних систем. Тоді навіщо зберігати такий проміжний формат коду та CLR для виконання цього CIL. Хіба це не головний біль боротися. Чому Microsoft обрала такий?
EDIT Ця своєрідна архітектура має свою ціну. Це знизить продуктивність, чи не так? Java робить це для підтримки незалежності платформи, з якої причини .NET це робить? Чому б не зберегти простий звичайний C, як компілятор. Будь-який спосіб також зажадає компілятора для перетворення коду в CIL, якщо мені потрібно буде додати будь-яку нову мову, єдина різниця, яку це зробить, - це цільова мова. Тат все.