.NET Native где же ты был раньше

С помощью компилятора .NET Native можно будет компилировать в машинный код под определенную платформу - x86 или x64 или ARM. И тут возникает вполне резонный вопрос - а где вы были раньше? 

До недавнего времени .NET хоть и был создан с возможностью поддерживать несколько платформ, но всё же официально работал только на x86 или x64 и только под Windows. Остальное поддерживалось только независимыми разработками. При таком раскладе я не понимаю, зачем Microsoft все это время компилировала .NET приложения в IL код, если никогда не планировали запускать его где-то, кроме Windows на Intel совместимых процессорах. Получается, они осознано и бессмысленно тормозили свои же программы на .NET и не получали от этого реальной выгоды.

Сейчас, когда компания официально хочет поддерживать во многих отношениях Linux и MacOS, вдруг откуда не возьмись, появляется компилятор .NET Native, который должен будет создавать родной для платформы код. Я этот шаг поддерживаю обеими руками, потому что он позволит увеличить скорость работы приложений до 60% (по заявлению Майкрософт, а я им тут верю) и уменьшить расход памяти. Я просто не понимаю, почему это не было сделано раньше.

Большое количество программистов пишет только для одной платформы. Ударение на вторую букву О, потому что я не могу знать сколько в реальности, но имею ввиду, что таких людей много. Для них на много интереснее использовать любимый C# и компилировать в машинный код, чтобы получить преимущество в производительности и экономии памяти. Таким людей абсолютно не интересуют возможности и преимущества IL, которыми они не планируют пользоваться. 


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Владимир

06 Мая 2015

Как-то без рефлексии трудно себе представляю серьезную разработку в C#. Помоему для компиляции в машинный код есть с++. Хотя  я конечно рад, что такая возможность появится


AntonIva

06 Мая 2015

Po moemu, sozdanie dopolinitelinogo sloya kak CLR delayet namnogo legche sozdayie sledushevo Windows OS. Naprimer Windows 8 sdelal ocheni mnogo core izmenenii, mnogie .NET prilojenii daje ne zametyat etogo.


УкроКитаец

06 Мая 2015

Вопрос в другом. Если будет компиляция в инструкции платформы, в машинный код, исчезнет ли зависимость сборки от установленного .ИЕТ Фреймворка?
Если это будет самостоятельный бинарник, то это плюс , ящитаю.
А инлайн АСМ-вставки они там не собрались запилить? ))))


darthat

13 Мая 2015

А как же NGen, разве он не то же самое делал?


Александр

21 Мая 2016

Здравствуйте, Михаил. Только недавно услышал про .net Native. Работал раньше на C#, и отвращало лишь то, что работает на своей платформе .net, которая его замедляет. Объясните, пожалуйста, попдробней, в чем заключается суть .net native?
Как я понял, если раньше компиляция шла через промежуточное звено - IL-код, то сейчас C# будет компилироваться сразу в машинные команды, как C++?

Почему интересуюсь: мне нравится язык C#, и хочу на него вернуться. Но поэтому хочу до конца понять этот компилятор .net native.


Михаил Фленов

21 Мая 2016

На счет машинных команд - ну это не самый главный тормоз. На сколько я понял, будут прямая линковка на библиотечные функции. Сейчас все через промежуточное звено, которое как раз подтормаживает.


Александр

21 Мая 2016

Ммм. Просто интересно, смогу ли я его использовать вместо C++)) C++ нравится производительностью, но не нравится сам язык.
Рассматривал Rust, Golang. Но неразвитость IDE пока не удовлетворяет требованиям.
Если C# будет близко по скорости к C++, то это рай.


06 Июня 2017

Пока не установил VS15 имею вопрос: " А поможет ли .net Native скомпилировать проект на XNA 3.1"? Вопрос возник в связи с тем, что эта технология не может быть использована ни с чем кроме VS2008, ибо XNA Game Studio 3.1 ни на что другое не ставится.


Михаил Фленов

06 Июня 2017

Я не интересовался, потому что XNA мертвая технология, она уже давно закрыта и развиваться не будет.


06 Июня 2017

то есть .net Native может перевести в родной код только проект, и не может перевести в него .net EXE-файл?


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне