Mono and Roslyn
tirania.org
tirania.org
HUGE mistake. After a couple months of development we have (today) abandoned the project and decided to take a different direction.
Mono isn't just reliable for production, as simple as that. It will inevitably have unstable and unpredictable behaviours, period. That said, it might still be good alternative for desktop local apps. Just make sure you save your work enough times during your workflow ;)
Most of the problems weren't caused by mono alone nor by the app alone. The really buggy behaviors came out with the interaction of the two.
I was using NancyFX, not ServiceStack. I wish I would have tried ServiceStack as well since I think they are probably better.
I think ServiceStack would probably have solved my issues though.
Apropos this rant that I recently (re-)read: http://lua-users.org/lists/lua-l/2011-10/msg00825.html
Some other guy read about LuaJIT somewhere, so they give it a try, but obviously don't get a speedup and (of course) blame LuaJIT. They write angry letters to me, I try to politely explain to them that their design leaves something to be desired, they blame the messenger.
Then they go and write a post-mortem in a game-centric blog about how bad Lua is, that nobody should ever use scripting for anything and that their next stellar project will use C# with lots of enterprise-ready frameworks. And that they're hiring, because they got nobody with a friggin clue about C#, but management dined with someone from Redmond and they know best, of course.
So yeah, i'm 100% sure that things could have been done differently - better - yet this was the outcome no matter how many resources we putted on it. We never complained with the creator of the application (yet, we discussed about it with him) and for the very same reason i don't want to name the product as i'm still convinced it is indeed a good piece of software. I'm just saying that with our project, 4+ very skilled people for about 2 months ended up with nothing. Take it or leave it :)
If so, I'm curious to hear the reasoning behind abandoning the project altogether and re-writing from scratch (and likely re-interviewing and hiring a different team with different skillsets) as opposed to simply moving the production environment onto Windows...
This is usually how migrations to .NET start. Sadly.
My biggest grip with Mono is the lack of automation tools (SCM in this case) and that alone is a show stopper for me. Maven and Eclipse/IntelliJ spoiled me too much that I'd rather not touch Make/Ant/CMake/MSBuild. MSBuild is Microsoft only (despite there may have been some support in Mono, as you have read the article, it's still Microsoft exclusive tool).
I'd love to use Mono to develop cross-platform desktop application. I really really really do. In fact, I decided to give it a try one time despite its shortcoming that I mentioned above. In the end, I felt that there's simply too much work for me to build any side project using Mono.
This may not be the case for serious commercial desktop app because they can invest more resources to deal with the automation tools. But for side project? Mono would definitely not on top of my list.
It's great to see a build tool like this but my apology, the syntax is horrifying! :( (I suppose that's a personal taste).
I'm really2 spoiled by Maven because of all the things it does for me. FAKE is just like Ant/NAnt/MSBuild so it's not what I'm hoping for.
I've worked with Ant before and the build script generally becomes bloated really quick with no standard.
Only thing we've had problems with I think was the LLVM backend; IIRC some of our F# code didn't work on it. But that was before Mono 3.0 and I am not sure if we checked it since.
One set of applications is typical business message processing. Read XML files, deal with SQL Server, Postgres, RabbitMQ. Another one was using the Mono runtime embedded in FreeSWITCH to do stuff to an active SIP call. FreeSWITCH's Mono integration isn't totally unused and I've yet to hear of any stability related bugs.
Mono is a project which has a lot of different pieces of technology underneath. Please tell us the part that didn't work for you, because you cannot attribute low quality to the whole project just by testing a small part. (i.e.: was your project a web app or a desktop app? how did you host it? did your team have any Unix expertise or were just a bunch of Windows devs expecting to become Linuxers overnight?)
And most importantly, what version of Mono did you use? (Most people that complain end up saying that they just used the mono that their 4 year old distro supplied, which is a version even older than 4 years.)
yet were unable to debug 2 months worth of new code on a mature platform, that lesser people have no troubles with.
Turns out it would be cheaper to just host on Windows Azure because the work of fixing/tweaking things just so it will run properly took way more time (money) than was planned.
On the other hand, mono is 'open source' so it's kind of rubbish for Xamarin to be asking license fees when they have their own (pretty rubbish) competing game stack with monogame that they have a vested interest in (not commercially, but Xamarin developers work on it).
I find this sort of 'kind of open source but actually you have to pay us ahahahahaa~' thing pretty distasteful.
Person A: Invents something, fails to capitalize on it.
Person B: does marketing work, sells all the Monies!
Person A: -__- Oh that was clever. Actually, I want some of your money please.
Person B: Fuck off. <--- The correct response.
If you make something and want to sell it, sell it. If you make something and give it away for free, don't come crying when someone else sells it.
The 'dual license GPL' approach to software which is 'kind of free unless you sell it, in which case we'll negotiate some nice on going licensing fees' seems disingenuous to the spirit of open source (and specifically the GPL) to me.
Some tips: free doesn't mean "gratis", it comes from "freedom". Therefore it is normal that the GPL uses a strategy to avoid that derived works become proprietary ('proprietary' means: essentially "non-free" for the end-user, and "free" for the developer).
From your comment it seems that you confuse the fact that opensource is not something that benefits the developer; it is something that benefits the end user! Don't forget that.
If the assets aren't covered, I think Unity could go LGPL in some way.
Very disappointing that Unity haven't upgraded yet, hopefully they'll do so soon.
I find earning money on the work of others for free pretty distasteful.
Is it still a problem?! Seriously?
Cross platform, open source .NET development framework
[Linux, Windows, Mac]-compatible .NET
http://www.mono-project.com