Linked by Kroc Camen on Tue 17th May 2011 12:05 UTC
Mono Project Two weeks ago we covered the news that the Mono development team were let go kicked out by the new owners of Novel, Attachmate, apparently to move operations to Germany. Miguel de Icazza, founder of Mono, has taken this opportunity to break off on his own and has started a new company, Xamarin, to bring commercial .NET development products to iOS and Android.
Thread beginning with comment 473501
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE: Comment by Morin
by tanishaj on Wed 18th May 2011 04:21 UTC in reply to "Comment by Morin"
tanishaj
Member since:
2010-12-22

> Now he has decided to port Mono to iOS, a platform where the vendor
> has been extremely hostile to alternative development tools in the past
> and has a penchant for changing the rules with no recourse for
> developers.

Those were my first thoughts. .NET on Android? Go for it. .NET on iOS? Sounds like Apple is going to yank this as soon as it is popular enough to show up on their radar. The F.U.D. that developers experience about this (I certainly do) isn't going to help either.

That being said, even with all legal hassles and Apple control-mania aside, I'm confused over the value of .NET on either Android or iOS. Sure you can do it, and it will probably be comfortable for a seasoned .NET developer trying to build apps on either system.

But how up-to-date will this be compared to the native frameworks? What about quality? I am certainly convinced that .NET is one of the top-quality development frameworks out there, surpassing Java in many (but not all) areas. But on Android and iOS, it would be a portable-rather-than-tailored framework torn between supporting the native functionality and still being .NET, while the native APIs provide exactly the intended functionality.

Last but not least, .NET is strong in desktop and server development, and there's still a lot of money to be made, even with Microsoft already offering their stuff. I'd bet there are many existing and potential .NET-on-Linux systems out there; MS's .NET development tools could use some competition to catch up (seriously, they're still trying but failing to imitate Eclipse), and free .NET libraries and frameworks are still in their infancy compared to their equivalent for Java. Plus many Java developers have become cautious about Oracle's next big screw-up.


The commercial opportunity for a small company to provide .NET dev tools is definitely on mobile. I think that Xamarin has exactly the right strategy.

You have clearly never used MonoTouch. First of all, the quality is now excellent*. Second, you can access pretty much everything iOS offers through the MonoTouch APIs. Wherever the native API provides "exactly the right functionality", there is a MonoTouch version of the same API. The best examples are all the GUI functionality. Miguel and his team (now at Xamarin) have done an excellent job of creating excellent iOS APIs that feel "right" to a .NET developer.

The upcoming Xamarin .NET for iOS will use exactly the same API as MonoTouch does now (we are told).

Up until now, MonoTouch has launched new versions practically simultaneously to the release of new iOS versions from Apple. You could use all the new functionality right away. Obviously this will take a bit of a hit while the Xamarin team writes their new .NET for iOS product but I fully expect them to be back to their old magic in the next six months or so.

Why use .NET to develop iOS apps? Well, how about the fact that it is a managed framework. Not having to worry about memory management (garbage collection) sound useful to you? It sure does to me. How about the fact that it brings much of the excellent .NET framework with it? I wrote an app earlier this month that includes both Feedburner (Blog) and Twitter feeds. I was able to use LINQ-to-XML to do in a few lines what would be a royal pain the @#$* to do in Objective-C. I also used a custom micro-ORM that I wrote myself (built over ADO.NET) to do the database work. I originally wrote this for an ASP.NET app and was just able to reuse it wholesale in my iPhone app. Very nice.

Why use .NET on Android? Well, to some of us Java just seems like going back to C# 1.1 which is just not fun. But let's look at that app I just mentioned above. If I use .NET for Android to write the Android version, I can share almost all the non-GUI code with the version I already wrote for iOS (including the database and XML processing code). Guess what, I will be able to use it again if I make a Windows Phone 7 version. The more sophisticated my app is, the bigger advantage this becomes. Exactly what other dev tool allows me to do that?

Mono is already popular on iOS. Apple took a run at restricting what tools developers use for iOS programming and was shocked to learn that a lot of the big shops responsible for their most important apps do not use pure Apple tool-chains. Apple had to back down and abandon the idea of Objective-C only apps. I do not see them being more successful in the future. Alternative tools (like Mono) are only being used more and more.

What Apple does insist on is that the code compile down to native instructions (no interpreters or virtual machines) and only rely on native GUI widgets. MonoTouch does exactly that.

If you judge a MonoTouch app just by the bits that end up on your phone, it creates completely native iOS applications.

* I do have to admit that Mono for Android (just released) is not up to the same quality standard. The present situation means that this will remain the case for a while. Again, I have no doubt myself that .NET for Android will be mature within the year.

Reply Parent Score: 2

RE[2]: Comment by Morin
by oiaohm on Wed 18th May 2011 04:53 in reply to "RE: Comment by Morin"
oiaohm Member since:
2009-05-30

I am about to play the legal devil.

Why use .NET to develop iOS apps? Well, how about the fact that it is a managed framework. Not having to worry about memory management (garbage collection) sound useful to you? It sure does to me. How about the fact that it brings much of the excellent .NET framework with it? I wrote an app earlier this month that includes both Feedburner (Blog) and Twitter feeds. I was able to use LINQ-to-XML to do in a few lines what would be a royal pain the @#$* to do in Objective-C. I also used a custom micro-ORM that I wrote myself (built over ADO.NET) to do the database work. I originally wrote this for an ASP.NET app and was just able to reuse it wholesale in my iPhone app. Very nice.


So I am a patent troll. I have just turned up on your door sueing you with a patent MS sold me.

Now why you. You shipped an application contain mono using a feature that my patent just happens to cover. ADO.NET(that is outside the community promise),

You try to point me to the mono project who sold you it. Sorry I am not interested. You shipped it with your application so you are up for twice the price your iphone application sold for. Yes apple does not provide the runtime and you aquired it from a non patent protected source the new mono company.

Now if you had aquired it from Novell or the company that had taken it over I would have to wait until the end of year to attack you. Basically if I was you I would be planning to pull you app from the iphone store when the MS Novell agreement ends.

Strangely few weaks latter I now own the source code rights to your application. You are working for me to pay of your debt.

Thank you for playing with legally unsafe stuff.

Reply Parent Score: 2

RE[3]: Comment by Morin
by tanishaj on Wed 18th May 2011 07:57 in reply to "RE[2]: Comment by Morin"
tanishaj Member since:
2010-12-22

I am about to play the legal devil.

So I am a patent troll. I have just turned up on your door sueing you with a patent MS sold me.

Now why you. You shipped an application contain mono using a feature that my patent just happens to cover. ADO.NET(that is outside the community promise),

You try to point me to the mono project who sold you it. Sorry I am not interested. You shipped it with your application so you are up for twice the price your iphone application sold for. Yes apple does not provide the runtime and you aquired it from a non patent protected source the new mono company.

Now if you had aquired it from Novell or the company that had taken it over I would have to wait until the end of year to attack you. Basically if I was you I would be planning to pull you app from the iphone store when the MS Novell agreement ends.

Strangely few weaks latter I now own the source code rights to your application. You are working for me to pay of your debt.

Thank you for playing with legally unsafe stuff.


Nice one.

1) I explain that I did get it from Novell (or Attachmate) and send you on your way. They distribute it identically (and I did actually get it from them in real life by the way). According to your post, I am golden and we are done. But let's continue anyway.

2) If I am feeling energetic, I might spend an afternoon to modify the code to work around your patent. ADO.NET is not exactly rocket science. Avoiding it completely would not be difficult. Your patent will be quite specific though so I doubt I have to change much.

3) I send you a written letter expressing my surprise that you have a patent claim on the code in question. There is no way that I am willfully infringing. After all, the code in question is being distributed by dozens of independent commercial entities and open-source projects. I got it from one of them (and will pick the one that offers me the greatest defenses).

4) I sit back and relax while you spend your time pursuing people with much, much deeper pockets than me
- This would include practically every database vendor as they have all implemented custom ADO.NET connectors
- This would include the majority of the Fortune 500
- This would include every commercial Linux distribution that I am aware of (SUSE, Red Hat, Canonical, etc.) as they all distribute Mono
- This would include most of the companies that use Mono in their products and there are a whole bunch

5) I look at the System.Data stuff that Microsoft has distributed under the Apache 2.0 license. If it requires your patent, then I have a patent grant from Microsoft.

6) If Microsoft has not licensed the patent from you to cover me above, then I sit back while you work through suing an EXTREMELY long list of people first. If Microsoft truly sold it to you outright, the list (and pocket depth) of .NET infringers dwarfs the Mono crowd

7) I call the Open Invention Network and tell them that some shitty patent troll is attacking Mono and that many of their members are exposed. Mono is listed under the definition of "Linux" that the OIN is designed to defend from patent attacks. The legal teams at Sony, IBM, NEC, Philips, Red Hat, RackSpace, and about a hundred other companies start working on my behalf.

8) I send a 911 to http://linuxdefenders.org, who use the same definition of "Linux" as the OIN. (ie. Mono is included in this definition). I probably fire off an email to Groklaw while I am at it.

They mobilize an army of passionate patent-hating geeks with centuries of combined tech experience to find examples of prior art and other loopholes in your patent. Honestly though, it will only take them about an hour to document it extensively as DBI in Perl, PDO in PHP, and a platoon of other technologies that all did exactly the same thing in the same way were in wide use before ADO.NET even existed.

9) I assert that your patent is not valid. Have fun with that review now ya hear.

10) If we do get to court, I ask that the trial be set aside while the validity of your patent is determined

11) I ask that our trial proceed pending the outcome of infringement cases you have launched against "more significant" users of the identical technology

12) You could ask for an injunction against my product but it will not be granted if I demonstrate that I have taken steps to avoid the use of your patent

13) If the trial proceeds at all, I argue that I am not (and have not been) infringing your patent as it does not apply to my use of the technology.

14) I point out that the doctrines of estoppel and laches, in combination with the public statements and behaviour of Microsoft (the patent originator) limit or eliminate the possibility of my being found to be infringing even if your patent is valid. I provide mountains and mountains of evidence in this area.

15) If you somehow win, I am not a willful infringer. Damages are limited to "provable" sales losses or "reasonable royalties". I am not sure where you get this "twice the price" nonsense.

16) How long have you owned that patent? I may not have been infringing long. Selling patents to patent trolls to attack rivals is more about blocking the sale of those competing products. If the tech is core to the products then you might demand payment for the "ongoing" distribution of the products. There is not often a big payoff for "past" distribution in the case where a patent troll gets a patent from a passive aggressive competitor in this way.

It is obvious that neither of us are lawyers.

This could all end badly for me I admit. Of course, I run the same risk with pretty much all the software that I use. In my opinion, Mono is not high on the list of technologies that could land me in hot water. This is particularly true of media formats, operating systems, communication protocols, and the like. The web applications that I build could be attacked by any number of bogus patents (even by firms such as Amazon).

Patent trolls can strike anywhere of course. In the USA, software in general is "legally unsafe stuff" under the current system.

Amusingly, if I am running my Mono app on an Android device, I am statistically much more likely to be sued about the use of Android than I am about the use of Mono.

Thanks though. That was fun.

Reply Parent Score: 1

RE[2]: Comment by Morin
by twitterfire on Thu 19th May 2011 01:09 in reply to "RE: Comment by Morin"
twitterfire Member since:
2008-09-11


If I use .NET for Android to write the Android version, I can share almost all the non-GUI code with the version I already wrote for iOS (including the database and XML processing code). Guess what, I will be able to use it again if I make a Windows Phone 7 version. The more sophisticated my app is, the bigger advantage this becomes. Exactly what other dev tool allows me to do that?


Well, we will be able to do more than that: write GUI code usin .NET too. If there will be a strong Silverlight implementation. Just imagine that: write once, no code chages, no hack, no hassle. ;) I do hope for a good Silverlight implementation on iOS and Android.

Reply Parent Score: 2