top | item 8170071

Mono 3.6.0 is out

128 points| edsiper2 | 11 years ago |mono-project.com

130 comments

order
[+] lucianp|11 years ago|reply
I really wish Mono would gain more traction. C# (3.0 onwards) is one of the nicest programming languages I have worked with (despite its warts). I also heard a lot of good things about F#.
[+] edgyswingset|11 years ago|reply
F# is a phenomenal language. Not that C# is bad (it's fantastic!), but the more I use F# the more I feel it's a superior language for most tasks. First-class .NET support is the real kicker, since you can do anything from DB interaction to writing MVC controllers. Integration with existing C# projects is seamless too, so it's really just a joy to work with.
[+] rbanffy|11 years ago|reply
Mono is perceived as a second-class citizen in the Unix-like space. Java, its main competitor, integrates very seamlessly and has excellent runtime tooling support Mono doesn't rival. Mono may gain some traction in some niches, but the Unix-like ecosystem is exceedingly diverse, without any dominant tool. Mono could double its presence and still be barely detectable. It could displace some of Java, but that would not affect the majority of the space.

It's impossible (and foolish) to avoid C# if you develop for Windows, but I haven't written a single line of C# since 2004.

[+] akoeplinger|11 years ago|reply
FYI, the current Mono website is pretty outdated right now and will soon be replaced by a new one built on Jekyll: check http://mono.github.io/website/ for a preview.
[+] Ad_Nauseam|11 years ago|reply
Why mono website built on Jekyll instead of .net with mono itself?
[+] Sir_Cmpwn|11 years ago|reply
Excellent! The Mono website has always been pretty lackluster.
[+] Locke1689|11 years ago|reply
Our msbuild implementation can now build Project K and Roslyn

Wow. Really impressive -- our MSBuild hackery is gut-wrenching.

[+] deevus|11 years ago|reply
This is cool!

I got pretty far into building an MVC project that I have been working on for a long while in Windows.

I had to manually run the NuGet package restore command, as I couldn't see a way to enable package restore for the project. I set EnableNuGetPackageRestore=true preceding the command and it installed all the packages successfully.

I have run into a roadblock with a MSBuild TypeScript target however. The error message wasn't very telling but I'm assuming it's because it can't find the TypeScript compiler.

[+] DAddYE|11 years ago|reply
Interesting, how about performances of mono? The thing that attracts me to it is F#, however as others stated I'm out of windows development since 98.
[+] MichaelGG|11 years ago|reply
Mono performs "fine". That is, I've never really isolated Mono as the cause of performance issues. I'm running it in telecom applications, handling billions of transactions a week. Years ago I compared things, and the CLR was usually better. But generally speaking, the approach in algorithms/approaches is going to dominate the runtime.

The exception is when you're dealing with a very high transaction rate (say, doing 100K msg/sec, non-trivial processing per message, in a single process). Then the GC overhead is something to be aware of, and you'll go to extreme lengths just to remove a handful of allocations for each message. At that point, manual memory management (either via hacking up the runtime with unsafe code, allocating large arrays of structs, or using unmanaged code) is the right path. But from light reading, it seems the same is true in Java or other GC languages, so no difference for Mono there.

So the alternative is C, usually, which has its own set of tradeoffs. Rust looks far more promising, but in general, Mono's performance is just good enough that I'm more likely to keep my nice F# code and add a few boxes. Unless you're in a high-performance arena, and you'd know if you are, this likely holds true for your business.

Edit: Also, I'll note we're using Mono 2.10. So updating to 3 should get us the new GC which may make a difference, as well as allow LLVM code, which should help significantly for server apps.

[+] romanovcode|11 years ago|reply
If you're asking about web performance - it's as good as it can be. It also fully supports async for quite some time now.
[+] muhmi|11 years ago|reply
Se run a MMO on top of mono 3/linux. perf is great. Only mono related problem is that there seems to be some rare cases when the VM manages to crash.
[+] lmedinas|11 years ago|reply
Here it is a good business for the "new" "21 century" Microsoft.

To put their language into Mobile, OSX and Linux.

[+] ldw|11 years ago|reply
Still... try to install any version higher than 2.10 on your linux distro and be ready for some suffering...
[+] logicchains|11 years ago|reply
If that's the case it might be worth considering an Arch Linux install.
[+] jkbyc|11 years ago|reply
Any time I wanted to use mono it didn't work. It wasn't many times though. A couple of times to try a FPS game and also for some sites based on Silverlight. I'm wondering if it is usable now or what's the common use case for it for which it works fine.
[+] throwaway12321d|11 years ago|reply
If you want to run Windows .NET applications, in particular GUI applications you may have problems. But I have been using Mono for developing new software (libraries) for a decade and it works nicely. I often don't need a GUI and if I do, I just do that part on Windows later.
[+] _random_|11 years ago|reply
If you play mobile games and have seen a Unity3d splash screen, then you have already used Mono. Silverlight is not Mono. Also Silverlight plugin is being displaced by the HTML5 plugin (shipping with the browser).
[+] math|11 years ago|reply
we successfully host http://backrecord.com with it and this is now a very substantial project. I find there are often issues to work through when deploying the website (hanging out for ASP.NET vNext), but nothing that can't be overcome. We have background processes that do a lot of mathematics. With these, we find we can generally deploy what we've been testing with the Microsoft CLR to mono/linux and it just works.
[+] tuio899|11 years ago|reply
It looks like only the installer for OSX is up to date.

Is Ubuntu supported? Where do Linux users other than OpenSUSE users get packages? Do they build it themselves?

[+] kazagistar|11 years ago|reply
You just have to wait a while for someone to build a package (and depending on distro, you might also have to wait a release), or just compile it yourself. Or, if you are "adventurous" and a good FOSS citizen, you can compile it yourself, and make a package.
[+] martinald|11 years ago|reply
Generally, yeah. There is some ubuntu ppas but I wouldn't recommend them.

It's not too hard to build, but it does take an age on a non-ssd machine.

[+] fsiefken|11 years ago|reply
yes build yourself, there are instructions on the net
[+] blutgens|11 years ago|reply
AND THE CROWD GOES....

"Yawn... what is out? Oh yeah, I think I heard of that..."

[+] dragonbonheur|11 years ago|reply
It's sad to see VB.net being treated as a second class citizen on this platform and ironic to see little GAMBAS be a better option for BASIC programming on Linux, given the resources.
[+] eropple|11 years ago|reply
Why is this "sad"? VB.NET offers little (anything?) over C#. I've never seen a bit of VB.NET you couldn't transpile into perfectly readable C# outside of really gross and bad implicit type conversions around Booleans.

If Xamarin should care about VB.NET, it should be better at things than C# is.

[+] jiggy2011|11 years ago|reply
Last time I met a VB.net programmer was about 2007, what advantages does it offer over C#?