8 ms·
Mono 5.0 Ships with Concurrent Garbage Collector
- romanovcode 9y agoCan someone explain what is the purpose of Mono after .NET Core? Is the sole purpose of Mono now is to run .NET on mobile?
- AlphaSite 9y agoUnity is a big user of it as well.
- Asooka 9y agoAFAIK Unity is stuck on an ancient version due to licensing issues.
- Latty 9y agoThe just bumped to a new version in the newest betas. After Microsoft bought Xamarin those licensing issues appear to have gone, which makes sense given MS's strategy.
- Asooka 9y agoThat's awesome news!
- jackmott 9y agonot anymore, new stuff coming now that MS owns xamarin
- douche 9y agoI'm still not sure why Microsoft hasn't just bought out Unity. Unity is almost like DirectX was for the 1990s for the 2010s.
- romanovcode 9y agoMicrosoft had XNA. That didn't turn out too well for them.
- douche 9y agoFor some reason they decided to scuttle that in the Balmer/Sinofsky/Nadella shakeups. It's actually a pretty nifty API to use, and has some continuation as MonoGame. Notably, Stardew Valley is an XNA/Monogame product.
- pjmlp 9y agoXNA died due to internal Microsoft politics, nothing to do with technology. Window Phone 8 redesign was a consequence of WinDev, led by Synofsky winning their usual disputes against DevTools. Nowadays they even support MonoGame on XBox and already apologized the process didn't went out as it should have been in first place. EDIT: Here they welcome MonoGame into XBox program http://news.xbox.com/2016/03/14/letter-chris-charla-idxbox-updates-gdc/ http://news.xbox.com/2016/03/14/letter-chris-charla-idxbox-u... And here Unity is listed as one of the official Windows 10 game middleware https://developer.microsoft.com/en-us/games/uwp https://developer.microsoft.com/en-us/games/uwp
- deleted 9y ago[deleted]
- markatkinson 9y agoThey working on a Unreal Engine implementation too. I really can't wait for that. It sounds like they in the final stages however, it has been there for a few months.
- pjmlp 9y agoMono also runs in other commercial UNIX and mainframe OSes not yet supported by .NET Core. And does support AOT compilation to native code, while the work in CoreRT is currently on hold, until the .NET Standard 2.0 gets finished.
- ledgerdev 9y agoIt appears work on CoreRT is still moving along, lots of recent activity, but lots of work yet to do. https://github.com/dotnet/corert/commits/master https://github.com/dotnet/corert/commits/master
- pjmlp 9y agoI got that info from a .NET podcast, thanks for the heads up as I don't follow CoreRT development.
- wulfklaue 9y agoIt was my impression that CoreRT work was put on the back burner ( not on hold ) so the team was able to focus on Core 2.0 release. Theoretically the team can move more resources to CoreRT as Core 2.0 is now in preview. There was some talk about CoreRT and July but i forget where that news came from.
- StevePerkins 9y agoIt's purpose is for people who need to do professional cross-platform .NET work, today. As opposed to tinkering with hello-world examples, and keeping an eye on what might be the big thing down the road. Mono actually works, today. It's hype is not ~5 years ahead of an actual implementation. It's not continuously waiting for one more generation of tooling to settle down, or one more standard to be decided or API to be implemented. Its "Getting Started" examples actually compile and run, consistently. There are two types of languages/frameworks... the ones that people are excited about, and the ones people currently use. Mono's purpose is to serve the latter.
- Latty 9y agoI think this is a little harsh on .net core - it is not as feature complete as mono yet, the point you are making is correct, but it's still usable right now, with some allowances and restrictions.
- StevePerkins 9y agoUnless it's come a LONG way in just the last 6 months, I don't think I'm being too harsh. I really jumped on board the train back when Microsoft's sudden openness made them the #1 topic on HN for awhile, and C# suddenly found new life as a cool fad language. I tried out .NET Core on all three platforms, started reading C# books, and even listened to the weekly "Community Standup" video podcast to be updated on the implementation's progress. I believe certifications are a bit of joke, but I was even thinking about pursuing a MCSD so that I might shift my career more from Java to C# with my next job change. I had realistic expectations about .NET Core's implementation in the early going, as it was Beta and rapidly changing. But I grew disillusioned as it went to RC and and even RTM, and was obviously still at the alpha stage in reality. Completely changing the build toolset post-launch? Seriously? And everything is branded with a different name every time I turn around? The documentation and community was never on the same page with the current status of the implementation. I could just never get even Microsoft's own basic examples to reliably build and run. Perhaps the "Hello world" console example, but not anything beyond that. I would put it down, and every 3 to 6 month pick it back up again to see if I could get the ASP.NET Core example to run. Sometimes I could, sometimes I couldn't. And it was always one or two more API's (e.g. Entity Framework) away from being ready for real professional use. For awhile I was checking in every 3 months, and then every 6 months, and at this point I think I'm on an annual schedule. And currently I'm no longer seriously considering a career switch. I don't mean to be too harsh on the PEOPLE behind .NET Core, as they seem to be smart, good people striving to re-invent a platform and extend its lifespan by decades. But I think that some realism is sinking in now that the initial hype wave has subsided. Re-implementing even a usable subset of a platform as large as .NET was always going to take WAY longer than people were originally supposing.
- systems 9y agoyou think of it this way mono is like a linux distro , .net core is like a linux kernel
- amelius 9y agoSo mono is using .NET core, internally?
- systems 9y agocurrently.. no they dont ..
- systems 9y agohttps://thenewstack.io/the-opportunity-of-net-core-and-why-it-will-not-fade-away/ https://thenewstack.io/the-opportunity-of-net-core-and-why-i... for why i think my analogy still make sense
- migueldeicaza 9y agoWe are now sharing code between the two stacks. This means that we get to share bug fixes, implementations and performance improvements. It is a process, and is generally going great. The challenge is tha Mono needs to ensure the larger API surface and to avoid regressions on existing behaviors and in some cases we have different substrates that are not identical. I posted a link above with the plan that we have. But Github is a better source of information, you can see there all the shared code in the .sources files in the Mono/mcs/class directories
- jackmott 9y agotargets more platforms. don't have to figure out the insane mess that is .net core cs net framework. just do toyr regular c# or f# code and compile it wherever.
- jbeja 9y agoMono cold start up time are faster that Roselyn. Pretty useful for command line applications.
- wornohaulus 9y agoMono compiles using Reslyn now.
- zamalek 9y agoThe same reason that OpenJDK exists.
- migueldeicaza 9y agoMono is focused on supporting mobile workloads while .NET core is focused on the server side. The class library implementations are converging (1) and some other bits are shared. Historically Mono has supported the "desktop" profile style of APIs, so it continues to support that model. We rely on that model and the APIs that come with it for Visual Studio for Mac. (1) http://www.mono-project.com/news/2016/11/29/mono-code-sharing/ http://www.mono-project.com/news/2016/11/29/mono-code-sharin...
- jen20 9y agoThis is false, Xamarin is focused on mobile. Mono has been focused on other use cases since it has existed. We successfully built Event Store on Mono and ported it to .NET and have hit surprisingly few issues. On .NET Core, our six separate attempts to port have not yet yielded anything usable.
- whazor 9y agoYou are trying to contradict the creator and maintainer of Mono.
- deleted 9y ago[deleted]
- jackmott 9y agoanother development is the Mono now supports System.Nunerics which means it has the same SIMD support as tegular .NET, and a few more SIMD intrinsics are coming to System.Nunerics soon as well. it will be usable quite a bit more often when those drop.
- scott00 9y agoAnybody have any idea how this profile compares to MS .NET?
- ympostor 9y ago"Compares" in what way?
- scott00 9y agoThe ideal comparison would be to run the exact same experiment on the exact same hardware on .net and see how it compares (ie, run Xamarin Studio on .net, open and build Xamarin Studio). But I would be interested in any quantitative comparison of Mono and .NET GC performance. Basically it's not obvious to me if this GC improvement widens Mono's lead over .net GC performance, brings Mono close to matching .net's lead, or brings Mono from terrible to merely bad in comparison to .net.
- moogly 9y ago.NET Framework v4.5 (released in 2012) included a concurrent GC mode.
- gok 9y ago“Long GC latency can cause typing delays that are noticeable and lead to a bad typing experience. Pauses over 100-150ms are noticeable by most of us” Pauses over 16ms are very noticeable on your phone’s 60 Hz display; it will cause dropped frames. So according to the graph, the large majority of pauses will still cause dropped frames.
- simooooo 9y agoYes they say just that in the article "Even if those numbers are a significant quality of life improvement, there’s plenty of work left for us to get to no visible delays due to the garbage collector. We have already a solid pipeline of improvements coming on our next releases."
- jackmott 9y ago1 dropped frame at 60fps is very noticeable? confirm this via experiment?
- corysama 9y agoConfirmed via experience of game and app devs everywhere for decades. It causes a discontinuity. Your eyes and brain have a lot of hardware specifically dedicated to detecting those.
- jackmott 9y agoi am a game dev and think that the impact of a single dropped frame is being overstated. however, a 50 or 100ms gc pause will miss more than 1
- janwillemb 9y agoSlightly off-topic quote: If .NET truly had garbage collection, a lot of programs would self-destruct on execution