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 473458
To read all comments associated with this story, please click here.
Comment by Morin
by Morin on Tue 17th May 2011 18:58 UTC
Morin
Member since:
2005-12-31

> 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.

Reply Score: 3

RE: Comment by Morin
by lucas_maximus on Tue 17th May 2011 19:41 in reply to "Comment by Morin"
lucas_maximus Member since:
2009-08-18

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.


Oh comon ... eclipse is crap compared to even VS 2005. NuGet Package manager actually is inspired more by Ruby Gems than anything else (which is what I am pretty sure you are referring to).

Eclipse is a jack of all trades when it comes to being an IDE, and is the best free IDE for Java, Android and a few other languages however.

A lot of free stuff for .NET is indeed still in it's infancy, however it a lot easier to find (most of it being on codeplex) than Java free libraries.

The main problem with the free .NET libraries is that the docs are all over the place ... Codeplex is no MSDN and I have a mare finding decent docs for Codeplex projects ... A lot of stuff is moving to GitHub as well which is proving a pain in the arse to version track if it isn't the main NuGet repository because I can't install GIT due to internal policies.

I never needed to use MONO since I develop for mostly ASP.NET on Windows 2008 ... but I listened to a podcast with Miguel in it ... and he absolutely loved the .NET API ... It is the best API I have worked with other than Google's APIs.

Edited 2011-05-17 19:46 UTC

Reply Parent Score: 2

RE[2]: Comment by Morin
by Morin on Wed 18th May 2011 06:34 in reply to "RE: Comment by Morin"
Morin Member since:
2005-12-31

Oh comon ... eclipse is crap compared to even VS 2005. NuGet Package manager actually is inspired more by Ruby Gems than anything else (which is what I am pretty sure you are referring to).


I am referring to the C# development tools, even those from VS 2010, which are total crap compared to the Java development tools found in Eclipse, latest version.

I have never used NuGet, and frankly I don't see how a package manager would help me over sub-par code editing/completion tools.

Reply Parent Score: 4

RE: Comment by Morin
by Delgarde on Tue 17th May 2011 21:34 in reply to "Comment by Morin"
Delgarde Member since:
2008-08-19

.NET on iOS? Sounds like Apple is going to yank this as soon as it is popular enough to show up on their radar.


It already exists, has for a few years. There was quite a bit of noise around it when Apple did their thing about insisting on native APIs and tools only.

Reply Parent Score: 3

RE: Comment by Morin
by tanishaj on Wed 18th May 2011 04:21 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[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

RE: Comment by Morin
by JAlexoid on Wed 18th May 2011 14:59 in reply to "Comment by Morin"
JAlexoid Member since:
2009-05-19

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.


They are not going to yank it, but they have restrictions in place. They already tried to yank all non-approved languages, but as a result of a backlash they yanked their provision instead.

Reply Parent Score: 3

RE: Comment by Morin
by twitterfire on Thu 19th May 2011 00:51 in reply to "Comment by Morin"
twitterfire Member since:
2008-09-11

> 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.


Well, the apps running in Android that you call native are written in Java. Certainly .NET apps won't do a poorer job if .NET will be implemented correctly.

Net is also strong for mobile development (think Windows Phone). Net also runs in browsers, servers and whatever.


I think that Icaza will make a lot of cash from this move. There are literally hordes of .NET programmers who will invade iOS and Android making Icaza rich at the same time. ;)

The nicest thing in the world: make a Silverlight app and run it on Windows Phone, iOS, Android thus making 3x amount of cash. ;)

And another nice thing is that .NET move will stick it to Apple.

As many more apps will be written using .NET instead of Apple's tools, there will be less control and less of a walled garden.

Reply Parent Score: 2