Подтвердить что ты не робот

CoreCLR и отношения проекта Mono после Microsoft открывают .NET.

Может ли кто-нибудь объяснить мне, что такое текущие отношения между Mono и открытым исходным/Linux-переносным стеком .NET(CoreCLR, CoreFX, Roslyn, ASP.NET), недавно выпущенными Microsoft?

Довольно ясно, что эти проекты перекрываются, поэтому мне любопытно, какая дорожная карта для них обойдется - Mono каким-то образом заменит свой компонент новыми Microsoft, или они собираются как-то сосуществовать?

4b9b3361

Ответ 1

От участника Mono от reddit:

Я думаю, что люди ошибаются в отношении всей ситуации Mono/CoreCLR. Почему одна виртуальная машина становится открытым исходным кодом и переносится в другие ОС, означает, что другая виртуальная машина не может существовать? Это будет похоже на то, что должна быть только одна реализация Python или одна JVM. Это нехорошо. Конкурс здоров.

В Mono есть много функций, которые CoreCLR не делает: LLVM, полный AOT, NaCl, тасклеты, кросс-мост GC-моста, различные модули профилировщика и т.д. Моновое время запуска и время работы памяти также оптимизированы для платформ /devices, которые CoreCLR не являются (по крайней мере в настоящее время) даже таргетингом. OTOH, CoreCLR имеет более зрелый GC и, как правило, лучшее генерирование кода (следовательно, более медленное время запуска). Две виртуальные машины хороши в разных вещах, и нет причин, по которым они не могут существовать.

Не похоже, чтобы мы также настаивали на сохранении нашего собственного кода. Мы с удовольствием перейдем к исходному коду CoreCLR/reference, когда есть явные преимущества для этого (меньше обслуживания, более корректного, еще достаточно портативного). Мы уже импортировали тонны исходного исходного кода, и мы также импортируем определенные части ядра CoreCLR:
https://github.com/mono/mono/blob/master/mono/metadata/decimal-ms.c
https://github.com/mono/mono/blob/master/mono/metadata/threadpool-ms.c

Из члена .NET в HN:

Библиотеки основных фреймворков (CoreFX) - https://github.com/dotnet/corefx - используются для всех сценариев .NET Core, включая .NET Native (UWP), Это означает, что ваш код делает то же самое во всех этих разных средах, поскольку он использует одни и те же базовые библиотеки. Отдельно, проект Mono использует много одного и того же кода, а это значит, что базовая платформа для приложений Xamarin становится более совместимой с CoreFX. Yeahh! Мы надеемся сделать это более формальным в будущем. Мы часто общаемся с @migueldeicaza.

В основном существует много обмена кодами между ними, и я не удивлюсь, если они сгущаются в будущем. Теперь, когда MS приобрела Xamarin, я не думаю, что они будут очень заинтересованы в поддержании двух режимов работы.

Ответ 2

Я думаю, что ответ может развиваться с течением времени, но я понимаю, что Microsoft и Mono Project будут работать вместе, или, по крайней мере, Microsoft разрешит Mono работать с открытым исходным кодом .Net.

http://www.mono-project.com/docs/about-mono/releases/4.0.0/

В то время как Microsoft работает над .NET Core: распространяемой и переименованной версией .NET, проект остается незавершенным. Mono на этом этапе продолжает предоставлять API, который отслеживает версию настольного компьютера/сервера .NET.

Это означает, что большая часть кода, который мы интегрировали, происходит из-за падения ReferenceSource. В будущем мы будем поставлять "Mono Core" в одних и тех же строках .NET Core, чтобы позволить использовать среду исполнения Mono с новой библиотечной системой распространения, которая разрабатывается с помощью CoreFX.

И Мигель де Иказа (CTO и соучредитель Xamarin и основатель проекта Mono) отметил, что:

http://tirania.org/blog/archive/2014/Nov-12.html

.NET открыто из-за лицензии MIT. Мало того, что код выпущен под этой очень разрешительной лицензией, но Microsoft предоставляет патентное обещание, чтобы гарантировать, что .NET получит одобрение, которого он заслуживает.

И для двух проектов в частности:

Моно сможет использовать столько же, сколько хочет от этого проекта.

...

Microsoft заявила, что в настоящее время они не планируют принимать исправления или участвовать в полной разработке стиля сообщества с открытым исходным кодом этой кодовой базы, так как требования к обратной совместимости в Windows очень высоки.