Hacker News new | comments | show | ask | jobs | submit login
Mono Developers start their own company (tirania.org)
325 points by jstedfast on May 16, 2011 | hide | past | web | favorite | 80 comments

It's awesome to see open source teams truly believe in what they do and stand up against, in lack of better name, "classic business model". First Jenkins CI, now Mono.

I wish you all the best guys...

thanks! We appreciate all the love!

For those who didn't catch it, the "International Mono Support" aside is a reference to Miguel's earlier (first?) company, "International Gnome Support", renamed to Helix Code, then Ximian, and eventually purchased by Novell.

It's awesome to see Miguel running a scrappy startup again. I just read through an old interview with him and Nat from the old IGF days, and Miguel hasn't lost any of the hacker/entrepreneur spirit:


Former Mono contributor myself from 2006-2008. Crazy day. It won't die. To many companies are invested in it. I always wished it would spin off earlier.

I wanted to meet up with Miguel when he was in SF a few days ago, but now I know why he was so busy.

You know, I was an early skeptic of Mono. After all, what use is a copycat technology stack?

I'm later to admit how wrong I was. Suddenly mono was deploying into iOS, Android and places where the existing developer ecosystem couldn't have otherwise.

A hearty congratulations and wish you all the best. You deserve it.

THIS is the company Microsoft needs to fund. Not Skype or Nokia.

In an ideal world, yes. But from a strategic point of view monotouch/monodroid (or whatever their new equivalents will be called) don't really help MS, it just helps developers from the MS stack port their skills to other platforms. If developer division didn't have the 'strategy tax' of being part of MS they'd probably be trying to do this themselves (re-targeting their tools to support development on alternate platforms). So in a way MONO helps MS by helping MS customers that MS can't help directly themselves. If there was a corporate equivalent of the relationship status "it's complicated" that's what I'd be using to describe the relationship between MS and the MONO project, but the rub is I don't think MS will be funding Monotouch/monodroid stuff any time soon.

I thought Microsoft did help fund the project when it was part of Novel. In the end, having a healthy .net community is in Microsoft's best interest, even if there is not a direct set of sales involved.

I know they (MS) had an engineering agreement with the MONO folks while they were at Novell re:Silverlight, but I don't know of any instances where they've donated money. If you've got any links please share them.

From the Moonlight FAQ: http://www.novell.com/products/desktop/moonlight_faq.html#j

This collaboration between Microsoft and Novell is a formal engineering development program. Novell is bringing the .NET-based Silverlight framework to Mono, an open source framework for running .NET applications on multiple platforms including Linux. Microsoft is providing a version of the necessary codecs for Linux.

Especially considering the amount it would cost would be peanuts compared to Skype.

I am confused by this. If attachmate let go of Mono developers clearly it felt the product has not been profitable and won't be any time soon.

What investor with a sound mind would feel otherwise? Novell had already dumped millions in to it and look where they ended up.

I'm not sure you can make this assumption. Attachmate seems most interested in cutting Novell down to the bone and extracting whatever value it can from what is left. I don't see a whole lot of future growth opportunity from that company in the long term. Just because Mono is not necessarily profitable now doesn't mean that it couldn't be cultivated into a profitable company later. Mono seemed to be recently finding its niche with its Unity (games) licensing and its MonoTouch and Mono for Android products.

(Disclaimer: I used to work at Ximian and Novell with Miguel & others, and contributed some to Mono in the early days.)

What do you mean about Unity? Unity Technologies is a separate company. Do they pay (a significant amount) to licence the tech?

Unity uses Mono for scripting in their engine. As it runs on a variety of platforms where replacing the runtime (which is normally LGPL licensed) isn't possible, I believe they have a commercial licensing agreement in place with Novell.

I don't know what the terms are of that agreement.

The profile of a successful product is very different at a startup than it is at a large or medium-sized company. This is an important reason why startups exist.

    Novell had already dumped millions in to it
How do you know that?

In terms of developer salary alone I have no doubt Novell has put millions of dollars in to Mono with no real obvious profitable products.

Besides the contracts with Unity, several game developers on the PS3 and Wii, EA, and others. Besides the MonoTouch and MonoDroid projects. Besides the support to other products like iFolder and Linux desktop apps they released. Besides the various support contracts Novell received for Mono from various companies. Besides the embedded licenses Novell scored to license Mono for things that were incompatible with the GPL runtime....

Nope... no real profits.

Doesn't look like the Mono guys were able to keep the key IP. That's too bad. It's hard to see what Attachmate gains by keeping it.

My guess is it simply takes a lot of time/money to get IP issues solved, which the mono guys don't have.. they would rather rebuild it than wait indefinitely for those things to be resolved.

Really sucks.

Something interesting is that the contributor agreement wasn't a copyright assignment but that you licensed your code to Novell and that you granted them the right to relicense it under any license they wanted.

Any one have any statistics on Mono or know companies that use it, always wondered about Mono usage. What are some use cases?

My iOS app iCircuit (http://icircuitapp.com) was written using MonoTouch. It's the #242 grossing productivity app in the store.

I know, I know, #242 doesn't sound like a lot, but it's a big store. :-)

I use Mono for the ease of development (powerful language + nice IDE), the nice runtime (GC and type reflection), and the .NET libraries.

Can you say a few words on the performance of the mono runtime on iOS (relative to native ObjC apps)?

Do you call out to native Objective-c code for compute intensive tasks? Do you find the mono garbage collector limiting in performance?

I assume you're using C#, right?

I can talk a little about this, I too have a bunch of apps in the appstore using MonoTouch (like Quicklytics, githubby, and a bunch of other ones for clients).

Performance of monotouch is extremely good. For 99% of what you're doing, you do not notice any performance loss at all. I've played around with disabling GC temporarily, but I haven't seen yet a reason to do that in my apps. A few of them use things like huge databases with data, creating thousands and thousands of gc'd objects, and everything works amazingly well.

Not everything can be done in MonoTouch, though. For some things you'll never get enough performance unless you go to C. You can't do a lot of things in Obj-C either. Remember, Obj-c is a dynamic language, so every method call is fairly expensive, which is not the case when you're in .NET land.

I have a lot of experience using mono on mobile platforms, including webos, ios, and android. We also port to mac/windows and a number of other ARM-based linux platforms.

If you go with mono, the most striking thing you will notice is increased startup time. On iOS with full AOT this effect is less pronounced, but on webos/android even tiny mono apps have 1-3 seconds of black screen at startup since there's a lot of JIT/metadata work to be done.

On darwin platforms, we've found that mono's garbage collector pauses unmanaged threads at inconvenient times and were forced to move audio playback into a separate process to prevent glitches. This only mattered with large numbers of live objects (>500k), but it did come into play. The new SGen collector may fix this, but it still (as of 2.10.2) crashes too often to be used.

Memory usage is noticeably higher than for comparable objective-c apps, but is not the end of the world.

Once your app is up and running, the mono runtime is plenty fast enough for most things. We even do some light DSP in C# on these platforms. It's better than you would think.

On a related note, just because you're using C#/.net doesn't mean that you can code like you're in the desktop/server world. You still need to focus on doing as little work possible per screen displayed to get the snappiest possible user experience.

iCircuit is a performance hungry application so it's completely valid to ask about perf. Some points:

1. The majority (99%) of your app is not perf-circital. It's just setting some properties on UIViews and letting CoreAnimation do the rest, or reading data from the DB, or waiting on a network socket. If something is slow, you just throw it on a background thread with a continuation to resync it with the UI thread.

2. Over the years, I have found that micro-optimizations (like: allocating objects on the stack as in C vs allocation on the heap in C#, no dynamic dispatch in C vs lots of virtuals in C#, etc.) are _all_ that C give you and are not enough to make an app like iCircuit fast.

What you need instead is the ability to easily change and experiment with algorithms. C# gives me this -- programming in a strongly typed OOP language gives me the safequards I need to do this. The GC is what allows me to do this quickly and without pulling out my hair (caches in C/C++ drive me nuts because I have to be so careful about ownership rules of objects).

In a nutshell, I'm willing to trade the small (constant) perf hit in order to have better tools for tackling the hard problems - such as analyzing a 1,000 node circuit.

iCircuit contains one tight loop where it has to factor a very large matrix many times a second. That loop runs fine on .NET on desktop machines (don't even break a sweat), but I used a C function for the iOS version since there was about a 2X improvement of speed for this function. Fortunately, .NET makes it stupid easy to call C functions so I have the best of both worlds.

Thanks for the detailed resposne!

Assuming I want to go this way - Do you find the mono development tools satisfactory (monodevelop) or do you use Microsoft's and later target iOS?

Unity (http://unity3d.com) is a 3D game engine that embeds Mono for scripting purposes.

Platform-wise, Unity has their own web player, pending NaCL support, pending Flash/Molehill support, shipped standalone Windows/Mac, pending Linux support, iPhone, Android, Wii, PS3, Xbox 360. They use AOT compilation on more restrictive platforms (iPhone, Xbox 360, etc).

I couldn't find an official comprehensive list, but this forum post attempts to cover iOS successes. 7 Unity-made games have hit #1 in the app store: http://forum.unity3d.com/threads/65053-iPhone-games-chart-be...

My first thought is to run ASP.NET on a Linux server.

Also, some Gnome apps are written in C#: http://en.wikipedia.org/wiki/Mono_(software)#Software_develo...

> to run ASP.NET on a Linux server

I can understand using ASP.NET on Windows servers. There aren't that many better alternatives (there are a couple, but not that many and most of them would require some tweaking), but Linux, like any Unix-like, server has a whole lot of exquisitely refined web platforms that are superior to ASP.NET in each and every way.

Unless you are already invested in ASP.NET. Linux would be the lesser of the two evils.

Really? You gotta be pretty damn tight to deal with that nightmare I imagine.

I'd be more inclined to guess it sees more use in shops that are .Net but want to use something like a memcached or redis server and want to write small utilities on that server in a language they know.

Pure speculation though.

Fogbugz (http://www.fogcreek.com/fogbugz/) on Linux runs under Mono. We use it. It works well.

Banshee, F-Spot & Tomboy are for me the biggest players in the open-source Mono world.

Pinta is another great open source mono app

Second Life uses Mono extensively. I'm not sure if it's in their runtime engine but it is used in their scripting engine.

OpenSim - open source virtual world server is also written in Mono.

Not sure on how up-to-date this is: http://www.mono-project.com/Companies_Using_Mono

I know one prominent company using Mono is Medtronic, who use it for their iOS app, and have been featured prominently by Apple.

I know a few game companies use it. Sims 3 is probably the biggest recent game using Mono

MS should support them with some funding.

Giving the Mono guys $50 million seems like a no-brainer investment to me. This is particularly true since MonoTouch directly helps bring apps to WP7. It would also help their cloud efforts. The future is heterogeneous, and while Mono can already handle that there's too much FUD.

> MonoTouch directly helps bring apps to WP7

Particularly if it means there could be one platform on which to write apps for both WP7 and Android.

I doubt Ballmer would go for it. He probably still thinks "Linux is a cancer" and a threat to be destroyed, whereas in fact the threat to MS is more from Apple.

If I was running MS I'd use the disquiet Oracle has created in the Java world by pushing for .NET/C# to replace Java as the standard OS-neutral run-anywhere platform.

It would also go a long way to assuage people that MS wasn't about to pull the rug out from under Mono with a patent suit. If MS was a shareholder in a company that commercializes Mono, it would be tougher (but not impossible) for them to sue.

Microsoft applied the "Community Promise" to the ECMA C# and CLI standards a couple of years ago.


For C# and the core language, yes. But not anything higher on the .NET stack. Novell had some patents that was able to hold Microsoft at bay. But since Novell sold off their patent portfolio, who knows?

Personally, I wouldn't touch Mono would a ten foot pole, but that's just me....

> It would also go a long way to assuage people that MS wasn't about to pull the rug out from under Mono with a patent suit. If MS was a shareholder in a company that commercializes Mono, it would be tougher (but not impossible) for them to sue.

For exactly this reason, I don't expect to see this happen.

I agree with this. While you could certainly make the argument that Mono undercuts Microsoft by expanding .NET beyond Windows, I think the amount of developer goodwill it generates towards .NET probably compensates for that.

Not to mention that Mono can be used to push developers toward Windows and the official .NET Framework, and in fact has.

Which is exactly why some of us are reluctant to cheer Mono on, no matter how dedicated and talented the Mono team might be.

Agreed - My feeling has always been that Microsoft would weakly support the "toy" effort on other platforms and then encourage/threaten people to deploy to a "real" platform when the time comes.

I don't know..

While I'd love to see some funding for these awesome guys, I don't think that Microsoft's money would be that great. Moving Mono development from a big corporation to a small startup might even help settle some of the FUD problems. Receiving money from MS probably wouldn't...

True. Although funding or enterprise adoption from somebody like IBM would say a lot. Right now it is not clear whether Mono is a viable enterprise platform for customers that value cross-platform deployments. At least that's the perception I get.

his former company was called ximian, which was started to do commercial gnome development. this new company is called xamarin to do commercial mono development. those are some pretty confusing names.

From "simian" and "tamarin" in keeping with the monkey (mono) theme, presumably.

yup, that's exactly it

Has something happened since Apple implemented the no interpreters rule? Didn't Apple outlaw MonoTouch?

MonoTouch generated code is not interpreted.

Yes, I read that today, but is that a new development from the time of the whole non-Apple-approved language kerfuffle, or have MonoTouch apps always compiled into c/C++/ObjC?

monotouch apps were never compiled to c/C++/ObjC. they go straight to native code.


that rule was reversed months ago

Also, while it was in effect it was not enforced against apps that used Mono.

Yea, it was all about trying to screw Adobe.

Why specifically were they trying to screw Adobe?

Flash Player for iOS sucks. But Apple doesn't want developers to forgo developing native apps while waiting for Flash to improve, so they just banned it. It's a clean break.

Thank you for asking this. I came here to ask it. I'm not sure why you were downvoted for it (I assume that's why the comment has been dimmed). Sometimes I don't think I recognize HN. It's a shame, and I hope it doesn't keep you from asking questions here.

Thanks. People can downvote stuff for silly reasons here, but I've found it's usually pretty easy to know when to take the downvotes as a badge of honor, and when to take them as a genuine learning experience.

I'm speculating here, but I'm guessing the reason it was downvoted (if it was, I never saw it dimmed) was because the whole "section 3.2.2" thing seems to have been settled around a year or so ago. That is, anyone who was concerned about it being a problem should probably know by now that it ended up being resolved and left MonoTouch unaffected. For a lot of folks I presume it's "old news" and some folks may just think euroclydon is trying to spread FUD.

No FUD here. I remember the 3.2.2 thing being news that transcended the realm of just iOS developers, but the resolution, I don't remember that at all.

A year, wow, it doesn't seem like that long ago!

I don't remember it either, probably because I decided that I would just try to make my website work well on mobile and skip the app altogether. Became convinced of this strategy when A decided to take 30% of my sales through an app also (or did they rescind that also?).

Anyway, downvoting without comment on something like this is poor.

This is the best news I've heard all week. Huge congratulations to Miguel and the entire Mono team!

Does anybody know how they'll be funded over the next few years?

We should break even from the proprietary products, plus the consulting and support services.

That being said, we want to grow, we want to market, we want to expand, and for that we will be raising VC funds.

Great to see you here.

Any plans to have a 'Team' section for Xamarin? I'd love to know who jumped on board, tbh.

The article mentions angel funding to start.

How many of the former Novell developers will work in Xamarin?

I guess this is a make or break moment for the Mono project. Who owns the copyright on Mono anyway - is it individual developers?

startup + opensource = fun!

If you have enough money for the first days/weeks/months/years.

I still fail to see the commercial/hobbyist/* appeal of C#/.NET/mono.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact