Hacker News new | ask | show | jobs
by ComputerGuru 4092 days ago
And with this release we see the beginning of the convergence of the Mono and Microsoft codebases. I'm glad Mono will be more reliable as a result, there have always been persistent reliability and compatibility issues that the Mono team hasn't been able to really fix.

It's also a little sad, in a way. It relegates Xamarin to maintainers of a distribution for another operating system. At the end of the day, C# and .NET are now officially first class citizens on Linux. Speaking as someone that actually ran Mono in production for around a year before realizing it was a ridiculous waste of time and money and switching to Windows Server 2012 after finding and filling dozens of untrackable deployment and stability issues in ASP.NET under Mono, I'm definitely not ready to switch back anytime soon, but Mono is definitely foreseeably a real option.

4 comments

The Mono team did an amazing job, and they actually had a lot of support deep within Microsoft all along. But yeah, I think it's okay to say "it never really worked."

(And there's nothing wrong with being a port factory that deals with obscure path issues all day. That's why they give you a paycheck...)

Still, Xamarin is doing a LOT more than just Mono, much of it extraordinary.

Also delivering something that actually works is an ego boost. Probably attracts the "right" kind of employee for the task, too.

> But yeah, I think it's okay to say "it never really worked."

I don't. I mean yes mono <4.0 has a lot of problems, but it works well enough for me to shell out money for applications running on mono and be happy about it.

I literally saved two businesses as favors to friends. One by replacing a Mono app on Mac with Windows running in a VM. The second by doing the two hours of config work they were afraid of to host on Windows Server instead of a Linux box. (At the same damn price!)

Xamarin did an immense amount of work pushing that boulder up a hill. Glad you got results, but frankly it did a lot of damage to a lot of people. I say this as a Microsoft fanboy and someone who deployed sites you've heard of on Mono + Postgres + CentOS.

In the last year or two many .NET vendors went from "yes, it works on Mono!" to "it should work but no support." This indicates the formal death of the ecosystem to anyone but apologist hobbyists and thankfully we've gotten to a better place now.

> This indicates the formal death of the ecosystem to anyone but apologist hobbyists and thankfully we've gotten to a better place now.

A couple of things. First: "This", so far, is anecdotal and doesn't indicate much of anything, really. For something concrete, look at Unity. Maybe you haven't used anything built with it, but everything I've seen come out of it works just fine.

Second: Apologist hobbyists? That's not true and needlessly insulting. If your aim is to just marginalize anyone with a differing opinion please don't expect me to take you seriously.

Um... Unity spent the last three years trying to find a way to pry themselves off Mono. Unity "works" because devs using Unity work their asses off tiptoeing around a really old version of Mono. You picked about the worst possible example to make your point.

http://forum.unity3d.com/threads/unity-5-and-mono-runtime.23...

Unity works though. Unity games have a much better batting average in my experience than C++ ports, and I have more problems with "cross-platform" games and other applications written in Java.

These aren't hobbyists and they're not definitely not apologists. They're making good money on it. If it was as bad as you say, why bother with the Linux/Mac support to begin with? That's just noise compared to the Windows market.

I also have to point out that an ancient version of mono being problematic doesn't mean mono failed or doesn't work. By my measure, even that old version of mono works.

I don't know what your metric is. People ship working code and make money in parts of the market they wouldn't otherwise have. But I guess that doesn't count in the face of what? your decision not to use it?

> It's also a little sad, in a way. It relegates Xamarin to maintainers of a distribution for another operating system.

I'm not sure I understand what you mean here. As I understand things, Mono is still keeping its runtime - JIT, garbage collector (the release notes here mention optimizations to SGen), etc. That means Mono isn't nor is it planning to be "just" a distro for Microsoft's .NET. (But it is using more and more Microsoft library and compiler code.)

>I'm not sure I understand what you mean here. As I understand things, Mono is still keeping its runtime - JIT, garbage collector (the release notes here mention optimizations to SGen), etc.

So? Who will still use those, if there's a fully supported MS based (+ some open source effort for some edges) alternative?

It will be interesting to see if anyone releases an open-source port of the MS runtime to ARM... Xamarin could wind up left with only their proprietary cross-platform UI toolkit!
For Android this could be possible.

For iOS I think you would have to figure out how to hook up MS runtime to a LLVM AOT compiler and then do all the work Mono team did to make sure libraries compile/work without JIT.

I really hope Xamarin guys follow Microsoft lead and make entry level version of their product free. It's not just about the ~25$ per month, it's about community as well - say some guy X is maintaining .NET library Y. I write up a port/pull for Xamarin - X goes "sweet but I can't test that since I don't own Xamarin and I can't even include it in my test suite to not break it further". Now I have to maintain a branch of Y for Xamarin and most other people are likely not going to find it or willing to use it.

I don't know which % of their profit comes from the indie licensing but if it's not significant as I suspect I would hope that they see this - it will help both their adoption and the OSS community build tools for their product.

That depends on what Microsoft plans to do with the upcoming .NET Native compiler, but I guess that would be kept closed.
Runtime is already open and runs on Linux, one just has to cross compile it, optimize for mobile and do the bindings and such that Xamarin already does. That's still quite a bit of legwork since Xamarin has been doing it for some years now. Not saying someone couldn't do it, but it would take a good amount of time to be on the level Xamarin is in stability and performance.

I pay for Xamarin personally and think it's well worth it if doing cross-platform compared to the alternatives out there. I'd continue to do so until there's a very stable open sourced alternative. However, I think Xamarin knows such a possibility could happen and that's why they primarily target enterprise and not individual developers.

https://github.com/dotnet/coreclr

> At the end of the day, C# and .NET are now officially first class citizens on Linux.

C# and .NET will never be first class citizens on unix. This is by design.

http://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish

Maybe not first class, but I think Microsoft's eaten a bit of humble pie (ala IBM ~15-20 years ago when they started ramping up Linux efforts) and generally playing nice.

Who ten years ago would have imagined so much of .NET would wind up MIT licensed, not just some 'shared source' malarky, on Sourceforge's ~2015 successor?

This isn't the Microsoft of the Halloween memos anymore.

No, we are making them first class. When we have a bug that breaks one of our three build queues (Windows, Linux, Mac), it will not be acceptable to break any of the platforms.
Sweet :)
You're aware the past can only inform the future, not predict it?
Some people are never going to get over the past...guessing if the poster is American, they must not trust the British either for burning down the White House 200 years ago. I lived through the late 90s and 00s Microsoft era and know as well any developer the shenanigans that went on for better or worse. I always had a fondness for C# over Java for its willingness to innovate while Java stagnated, but never wanted to commit myself to being stuck only in the Windows ecosystem.

That said, I am excited to see the direction Microsoft is heading. It enthused me enough to start using Xamarin when I want to build cross platform for personal projects and to recently switch my day job to a company that uses .net for most of the their software. Not overly fond of cmd.exe and powershell on Windows still, but for most things, there's always Cygwin and it too has come a long way. Main issue is Powershell inherited all of cmd.exe's bad user interaction design (tab completion, select/copy/paste, buffer, history up/down scrolling) when compared to a typical *nix terminal.

> guessing if the poster is American, they must not trust the British either for burning down the White House 200 years ago.

Huh, what a fantastic point you make. Because I can trust the British in spite of something they did before any current living human being was alive, I should be willing to forget things that Microsoft did 10 years ago in an industry that hasn't fundamentally changed.

Are you being serious?

> Are you being serious?

Just countering your argument with an equally absurd one.

I probably wouldn't even bother if you hadn't dragged out the tired old "embrace, extend, extinguish" meme/mantra that was popular 10-15 years ago (and then wiki linking to it like no one is aware of it). I respect the differences in our opinions, but having to convey your point by adding that line in 2015 make one's argument a bit hallow.

Fair point about Wikipedia. I suppose that was unnecessary. I do think that's a bit of an ad hominem though.

> equally absurd one.

You must be trolling me. You cannot possibly think that the statement "Britain cannot be trusted, after what they did in the 18th century" and "Microsoft cannot be trusted after what they did in the early 2000's" are on equal footing.

But let's not resort to making this argument about analogies. How about you respond to my statement in the highest comment: What Microsoft can possibly stand to gain, fiscally speaking, from open sourcing .NET? From future profits to the current market.

That's a 15+ years off slogan from the Desktop/Browser wars era...

Nowhere near as relevant or enlightening as you think it is in 2015 (wasn't much of an analysis in 1998 either, but still...)

Oh please.

Microsoft hasn't had some crazy awakening like, "Hey, have you guys heard of this open source thing? We should embrace open source and free software!"

They've realized that they're beginning to fall from #1 in the eyes of developers. So they're throwing some bones to try to dissuade people from leaving their platforms.

Microsoft stands to gain NOTHING from open sourcing their platforms besides developer marketshare and perhaps a bit of PR from those who are stupid enough to think that Microsoft suddenly turned altruistic.

They're scared shitless. They shipped a bunch of products that are not so popular with consumers (Windows Phone 7, WP8, Windows 8, Surface Pro, etc.) and developers are starting to care less about targeting people on Windows. This is just damage control.

I hope it isn't enough.

Response #1:

Yeah man, it's all capitalism, they don't do it out of the goodness of their hearts!

What a revelation!

Pass the bong.

Response #2:

They're is no "Microsoft" as a person. That's a company, an aggregate entity which doesn't have either brains or a strategy.

What DOES exist is people running the company. Those people can change (and have, Gates->Ballmer->this new guy), and these new people can have different ideas about how to go about things.

If there are any propritary companies you like, then imagine that MS could be turned to behave like them. There is no "evil brain" behind it all making sure MS will always be like in the 1998 carricature you have in mind.

IBM circa 1999-2004 was hailed by OSS advocates for supporting Linux and OS -- yet the same company was the fearful Microsoft equivalent of its era, a few decades back.

Oh, and this evil AT&T that everybody feared and they had to break up in an anti-trust case? This is the company that gave us UNIX in the first place. (Not to mention Xerox Parc, another company's proprietary research facility, without which we'd have shit today).

And vice versa: those "nice" companies could change course if the wrong people came on board, or their current people saw an opportunity and got greedy.

Response #3:

A lot of us don't give a flying fuck about the success of OSS as some ideological venture.

We like some OSS software, and we like some proprietary software. Heck, some of us make a living creating proprietary software for proprietary companies, from small indie firms to Adobe to Microsoft to what have you.

And even as users, a lot of us won't settle for an inferior OSS product is there's an (affordable) superior proprietary one (and vice versa).