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.
The formation of this new company sounds like something that Miguel has been trying to get Novell to do for a while (much in the vein of The Document Foundation spinning off Libre Office née OpenOffice, but that took 10 years).
We have been trying to spin Mono off from Novell for more than a year now. Everyone agreed that Mono would have a brighter future as an independent company, so a plan was prepared last year.
Execution of this plan was cut-short (or pushed forward, depending on how you look at it) when Attachmate took action.
To make a long story short, the plan to spin off was not executed. Instead on Monday May 2nd, the Canadian and American teams were laid off; Europe, Brazil and Japan followed a few days later. These layoffs included all the MonoTouch and MonoDroid engineers and other key Mono developers. Although Attachmate allowed us to go home that day, we opted to provide technical support to our users until our last day at Novell, which was Friday last week.
Miguel and his team will now continue to work on Mono, their first commercial product to be an iPhone (and then Android) .NET development stack:
The new versions of .NET for the iPhone and Android will be source compatible with MonoTouch and Mono for Android. Like those versions, they will be commercial products, built on top of the open core Mono.
Moonlight will then also be ported to both platforms, opening more avenues for .NET-stack developers to access.
In addition to these programs, the new company will also offer commercial support for Mono, as well as custom development work; “A company that provides International Mono Support, if you will.”
The commercial products will obviously keep the company afloat, but this will not distract Miguel from working on the core Mono open source code. The company promises to “Continue to contribute, maintain and develop the open source Mono and Moonlight components.”
I always believe that it is better for someone passionate about their product to be more in control of it, and I’m sure with some new found freedoms and a new product focus, Miguel can do a great deal of good with the situation he finds himself in. As I am in no way involved with Mono, I cannot gauge what troubles may lie ahead when it comes to Attachmate starting up development work on Mono again in Germany. Will Miguel’s presence in the community as benevolent dictator clash with the new Novell? I can’t say. Perhaps everybody will get on peachy as both are working toward stronger commercial acceptance of Mono-based tools.
From the beginning I have always worried that Miguel’s disregard for Microsoft’s patents on .NET will one day come back to bite him. This latest action doesn’t strengthen my faith in his decisions. 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. That said, Miguel is clearly no idiot and knows far more about the situation than I do. To be in control of his own destiny again, I give him much praise and wish him the best.
Mono has existed on iOS for a number of years. There are apps in the appstore built using Mono technology. It was called MonoTouch. What Miguel is doing is reinventing the same product again.
And MonoTouch was made by Miguel and his team, I think is more like the rights of MonoTouch belong to that company that adquired Novell and they can’t use that.
That’s what I said. Dude, I was a Beta tester, I know the story 😉
Miguel and the rest of the Mono Development Team will do fine. Before there was Novell, there was Ximian. I invested quite a bit of my personal treasure on Novell when they acquired Ximian, yet Novell never delivered on the full potential of Mono. I can only hope that Xamarin will triumph since this will become a big win for all the developers and end users that want to keep benefiting from a robust garbage collected framework that is truly multi-platform and Multilanguage and thanks to the many GUI toolkits (Gtk#, WinForms, MonoMac, etc.), it also give you applications that feel native in all the supported OSes.
Mucha, mucha suerte a todos los Monos!
What about .NET on Linux servers and desktops though? Does that mean they are de-emphasizing Mono on Linux and moving most (or all) of their focus to the mobile market?
They will still do Mono, but will reimplement the MonoTouch and MonoDroid. In addition to providing optional commercial support.
But otherwise, who uses Mono on serverside? It’s not really big there, is it?
No, but I don’t think it’s very big right now on iOS or Android either. I suspect it would be used more on the server side if it were more mature and more compatible with the official .NET.
Mono is not popular on Android yet because the product was just released. That product is not really mature yet and now may never be. We will have wait a few months for the Xamarin product to see how popular it becomes.
Mono on iOS (iPhone) is much more popular than people realize. Between MonoTouch and Unity, there are many popular apps out now and more coming every day. I doubt that Unity is going to walk away from their awesome product. The number of iOS Mono apps will continue to grow even before Xamarin releases their .NET for iOS product.
MonoTouch is mature now and wonderful. I would not buy any more licenses but I plan to keep pumping out apps with the copies I have now. I know I am not alone.
I see Xamarin working closely with Unity3D. Though their Mono runtime is a modified version, just like MonoTouch.
.NET is quite big (asp), but not Mono. It could have been however, but Novell never really tried to make it big, they probably feared MS.
Mono will still be written in C++ (unless someone will write a good C# native copiler I guess ) so Mono will still run on Linux.
It does seem though, that Mono isn’t very used on Linux. At least not as used as SH or Python. I guess that most FOSS developers doesn’t like C# and .Net because they come from “the enemy”.
Really this is the problem. Tech from Microsoft in a lot of places with correct legal documentation is accepted by the FOSS developers.
From the enemy point of view is invalid. Remember Microsoft does submit code to the Linux kernel under the agreements of course not to patent sue over those parts.
The from the enemy claim is a Mono group smoke screen not true for most of the Linux world.
From enemy without required treaty paper work is an issue. Having FSF and other legal assessment groups point to the flaws hello problems.
By the way those waiting on silverlight on OS i and android. You are going to be waiting. Monotouch is not a silverlight ABI because the silverlight ABI does not suit the designs of android or OS i.
Silverlight app on either OSi or android would be like a battery power vampire.
Idea that .net works in browsers is another nice myth.
Given that it was only Novell that got the patent license promises and the like from MS, I wonder how safe the new project will be. C# is (IMHO) one of the better programming languages out there today (certainly it’s miles ahead of C++ and Objective-C and even a bit more sane than Java) and it would be a shame if it was lost to Linux and Mac users because of patent issues.
But are they implementing anything in their MonoTouch/MonoAndroid offerings which lie outside Microsoft’s ‘community promise licence’? If not then I don’t see what they have to fear legally. Anyway I think it makes perfect sense for Miguel to pursue this as a Mono-specific company rather than as a division of a larger company.
Hopefully they will manage to make enough money from their proprietary Mono offerings to stay afloat and thus be able to continue developing Mono as a cross platform C# solution. While I personally have absolutely no interest in C#/NET, I am impressed with the passion Miguel and his team have been implementing this development platform and I hope that they will have the opportunity to continue doing so.
AFAIK the patents mainly covered Windows.Forms, a GUI framework, so they wouldn’t affect a mobile platform that uses a totally different GUI concept. Of course the details depend on how broad said patents are, which I do not know. But AFAIK they do not affect the language or the core .NET runtime.
The Microsoft community promise is on C# and the .Net run time, not the ASP.Net, WinForms, or ADO.Net APIs.
Thus, I see Miguel and company emphasizing on C#, Mono runtime, and the GTK#, MonoTouch, and MonoDroid APIs.
Also don’t forget that Unity uses Mono for scripting, and tons of iOS games use Unity. And, there is the commercial Grasshopper product, which uses Mono to make ASP.Net apps run on Java Enterprise servers.
So now with the formation of Xaramin, there are now 3 separate commercial entities that use and depend on Mono.
That kind of solidifies Mono’s standing as an ongoing concern.
And MS patents? The only ambiguity/risk is in the MS specific APIs – ADO.Net, WinForms, ASP.Net, etc.
I am very glad this has transpired. I really really want there to be an ongoing open source version, as well as commercial alternatives, to C# and .Net.
Next to Python, C# is my favorite language, and having a non MS implementation available is great (not that I’m against using MS C#, .Net, or Visual Studio).
Their is a problem. Microsoft Community Promise on ,net only covers the ECMA spec listed features. I am sorry that MS .net runtime and Mono .net runtime exceed that. And Mono .net runtime has implemented the features MS has out side the spec.
So there is 0 percent of usable Mono without either recoding(to remove the bits out side ECMA) or a patent promise. Maybe project lead of mono will at long last deliver on his promise to provide a ECMA compliant run-time option. I have not really been asking for much.
I am not out to kill mono. I would just like version built to the legal limitations.
According to the following posts, there is not one program for Linux written using Mono which uses only the the ECMA spec listed features.
http://www.the-source.com/2010/12/mono-unsafe-at-any-speed/
http://www.the-source.com/2010/12/on-mono-packaging/
Mono classes which are not part of the technology Microsoft has submitted to ECMA have no coverage under the Microsoft Community Promise.
You know that your linked article is just counting namespaces and not classes or use of patents.
For example a point struct is best kept in System.Drawing and therefore System.Drawing is included even if no “Patent Promise” exists for this namespace.
So how is it so “Dangerous” to use a point struct?
Doesn’t Java have a Point class? Is that “Dangerous” to use as well? Or is it only “Dangerous” if used from C#?
Is short, your spin is disingenuous at best.
The issue here is method used in the C# point class might be MS unique and patented. Same with every other class that is not contained in the ECMA. There maybe landmines. Safe bet is to be able to build on a landmine free field. What mono does not provide developers with.
Java if your Java is from Redhat, IBM or Oracle. It has a full patent coverage. All open source java engines form them are under GPL or LGPL.
Java has 3 approved suppliers that can make their own forms. Oracle cannot attack Redhat or IBM or product produced using Java patents. Same with reverse. IBM cannot use it patents that cover java against Redhat or Orcale building a JVM. And so on. Also this patent allowance does not have a timeframe. New patents taken out by IBM Orcale or Redhat cannot be applied against each other or their users over java.
Multi patent safe supply lines. Its also possible to build with a non extended Java. Redhat or Orcales base Java’s provide. So you know you are inside the patent protected zone.
.Net. MS the only supplier with full unlimited supply protection. Novell had until the end of this year. If you were building with ECMA spec .net you would also have unlimited timeframe but there are basically no one is providing that.
Issue with mono is that there are many namespaces that cannot be disabled that are outside the patent shield of the community promise. So developers cannot simply check if they are inside or outside the protection.
Java is simple install the Orcale JVM or the Redhat JVM if you application works it using nothing from the JVM that does not have patent protection.
Now lets do .net. Application works fine on MS .net nop that is extended. It works fine on mono nop that is extended. This is not a suitable outcome.
Even with C and C++ I can restrict my build and runtime environments so only patent protection covered parts or too old to be patent protected out there. .Net currently too hard to be sure you are legally free and clear unless you restrict yourself to Microsoft products only.
Basically if you can present me with a method that I can be 100 percent sure I am running legally free and clear with .net on Linux OS X and so on. I maybe interested in the language.
Legal side must be answered. All the data of the legal issues of mono is out there. Been done many times over. Time to stop saying its not important.
GTK interfaces for mono most likely are not a legal issue since patent breach most likely would have to be in GTK so would have a heavy legal defense.
This is the critical thing. The most dangerous stuff is by MS and not covered by a patent grant.
Remember MS has been caught selling patents off to patent trolls to have those patents used against Linux. Yes so MS can patent attack Linux without their name on it. Nothing is stopping MS from selling patents off to trolls to attack mono users if mono ever becomes a threat to their market share.
MS is confirmed hostile to open source by their actions.
You are applying double standards here.
Microsoft has not issued a patent grant for the following technologies:
Python, PHP, Linux Kernel, (Free, Open, NET) BSD Kernel, ttf, rendering (numerous patents), application skinning (numerous patents), Ruby, LUA, IDE’s, Libre Office etc. etc. etc. etc.
Obviously you must argue against their usage since there is no MS Patent Grant.
What on earth makes you think that Mono is somehow different?
Very simple. PHP, Python, Linux Kernel…. Can truly prove independent development. So anyone wanting to use patents against them have to prove they apply and that the usage in those are not prior art so voiding the patent.
MS patents on .net 100 percent apply off the get go. So removing cost factor for patent aggressor to prove their case.
Double standards I am not. I am understanding a key difference. This is why it critical that inventors give you patent grants if they have them.
I am also aware of freetype patent issues. http://www.freetype.org/patents.html . Linux kernel and most other major project take getting patent grants key process as well.
But at least project like freetype has taken the issue serous-ally and avoided the patent effected areas. Due to other parties inventing TTF.
Did MS invent much of what you stated no. So a patent grant from MS is not critical.
Basically stop trying smoke and mirrors. Wake up to where you are sitting.
I think, for iOS, the more tricky aspect of this is the Mono Runtime itself. It’s LGPL (EEEK!!) unless commercially licensed (as it was in MonoTouch.) That means that for Miguel’s new venture, they need to Commercially license Mono Runtime from Attachmate to enable them to statically link it to an iOS executable. Do you see a bit of an issue here? I do. I’m not really going to go in to insane speculation mode, but to Commercially license a runtime from your nemesis – isn’t this dangerous? Basically, Attachmate would be in direct competition if they continue to sell MonoTouch. So they could easily revoke the license or block it.
No Miguel is a resourceful guy, so I’m hoping they’ll just create their own Runtime in the course of this. Then license than as BSD. And we’ll all be free of the BS that surrounds staticly linking the Mono Runtime to any exe on any platform
Legally this day and age you would want Apache 2.0 or equal. BSD is another License like MIT that contains no patent grants. Apache 2.0 allows static linking.
Yes the runtimes MS has released would be fine a base for iphone and other platforms.
By the way. Apache Harmony what is a JVM is also I stayed well clear of for lot of projects as well. But Apache Harmony has always openly admitted where the patent converge error is. Since Apache Harmony is not tested against the TCK or based off the LGPL source the java patent grant is not there . Of course you can pay the money for access to the TCK test it yourself and have the patent grant. Price of TCK for company is a gettable value. So costs of using Apache Harmony are check-able.
I don’t hate Apache Harmony. I am annoyed by the legal mess. I don’t hate it because they are legally truthful about what is wrong.
Mono project has taken the path of place under a rug and hope it goes away. So making live harder for me. Since legally risky stuff ends up mixed with stuff that would be safe. So making Mono completely not usable to me.
Using a Linux kernel in a device you can expect a phone call from Microsoft at some point over patents. Of course normally patents that don’t apply to the product. Like fat long/short file name translation formula that your kernel does not use. Guess who has to answer these calls? Might explain why I am not trusting Microsoft right.
Remember early on while FAT was going in dependance in the embed OS usage MS did not go after any such claims.
History people tells us how MS will act. As a item designed by them gets dominate if you don’t have a Patent grant they will hit you by either selling patents to trolls or hit you directly. This is the beast they are.
Who has the better IDE is not a issue if you cannot ship the application or a send bankrupt because you shipped an application.
Not asking for much?
All the code you are asking for is available completely out in the open at GitHub. The specification of what is covered by Microsoft’s Community Promise (patent grant) is covered in exhaustive detail in the ECMA standards (freely available online).
It is not like you have to carefully pick through and pull stuff apart or anything. The entire runtime, type system, and C# language are covered. Most of the “base” class libraries are covered. The stuff that is not covered are in big bundles that are already split out into their own assemblies. These are things like ASP.NET, ADO.NET, and Windows Forms.
Having trouble isolating ASP.NET? Let me help: it is System.Web.dll (do not use it if you do not want). How about ADO.NET? It is System.Data.dll (stay away if you like). This is not exactly impossible terrain to navigate.
Also, if you are really that paranoid, there are alternatives. For example, Manos de Mono is a complete web stack for Mono and .NET that does not use ASP.NET at all. It does not even use the ASP.NET HTTP request and response objects (it has it’s own).
Are you stepping up to start a project to organize the sources yourself or to create an “ECMA compliant” Mono distribution?
You are not. Instead, you are asking a bunch of guys that just got fired, are trying to launch a start-up, and are fighting for their livelihoods to do it for you.
Honestly, I think you are asking for more than you think.
It does not seem that any of the people that support Xamarin (or Mono in general), who are likely to buy Xamarin products, or even that are members of the active Mono community are clamouring for what you are asking for. I do not see much evidence that the Mono community would be greatly served by creating an ECMA-only subset. I personally believe the Mono haters would simply continue to hate. My apologies, but I really believe it is just plain old FUD.
A couple more things:
Mono is “ECMA compliant”. I suspect that you mean “patent safe” and are presenting the argument that only code that is ECMA only is “safe” because that is what the Community Promise refers to.
The C# 4.0 language and the .NET 4 CLR have not yet been standardized by ECMA. As such, you would need to use C# 3.0 and CLR 2.0 if you want to be extra, extra paranoid. You can of course do this easily with Mono if you like.
That said, the Community Promise is not the only source of protection.
1) Mono ships with a bunch of Microsoft (authored and copyright by Microsoft) code that is available under the Apache 2.0 license. This includes the DLR (Dynamic Language Runtime), ASP.NET MVC, MEF (the Managed Extensibility Framework), IronRuby, IronPython, and F#. Apache 2.0 includes a patent grant.
2) Microsoft actively supports the Moonlight initiative (including the CLR 4 implementation) by donating the test suite that Microsoft uses for Silverlight internally and fully licensing the Microsoft media codecs.
3) The entire .NET micro framework (up to version 4.1) is available under the Apache 2.0 license (again with a patent grant)
4) Microsoft actively promotes the use of Mono. For example, they write tutorials in the F# Developer Center about how to use F# on Mono.
5) Miguel and his team have regularly present Mono and Mono solutions at official Microsoft developer conferences.
6) Miguel himself was named a Microsoft MVP years AFTER staring the Mono project
7) Microsoft employees are around Mono all the time. For example, Scott Hanselman did a podcast about how the Hanselminutes iPhone app was written with MonoTouch. I saw Scott at a StackOverlow DevDays last year. The next speaker after him (Rory) did a demo of MonoDevelop and MonoTouch. After the conference, Scott did a podcast with Rory, Joel Spolsky, and Jeff Atwood. I know that Scott Hanselman is not the CEO of Microsoft but he is quite high-profile and this is just an example.
Basically, Microsoft is not leaving themselves much room to sue any Mono initiatives on patents. There is even less for them to work with if they want to avoid defenses like estoppel that would make any legal action against Mono impossible.
How about Attachmate? Well, they released Mono under an MIT/X11 license. Also, most of the Novell patents have been sold and are becoming part of the Open Innovation Network. Finally, they fired the whole Mono team. Good luck getting a court to side with you in preventing them for using their skills to make a living unless you have some very specific copyright or patent claims. Those are not the droids we are looking for.
Honestly, my case is not that legal trouble in Mono-land is impossible. Clearly though, practically every other software available to me on the market is equally exposed and, IMHO, quite a bit more so.
People hate Mono because .NET was invented at Microsoft. It is no more complicated than that.
I am no Microsoft lover (OS/2 user who moved to Linux in 1994 or so) and do not trust them much. I love Mono though and sleep well at night when I use it.
Yes this shows how thick you are. The extentions past ECMA are spread through the code base because they are done before ECMA approve is done. Mind you if the draft of C# 4.0 langugage and other part had been released on the community promise site of MS the implementation of it could be done now legally.
Problem this has not been done. So really before implementing for all usage 4.0 should be waiting in the development tree for the ECMA process to complete. It has not been done this way.
Yes some of these items are fine. Some their is the mistake of extending. I am locking to ECMA but really there is not a legally valid version.
So yes a bundle of legally clear could be done. Of course every part would have to be legally clear.
This is part of the deal between Novell and Microsoft. So no this does not extend to the new company. Codecs were licensed to Novell. So yes your dead here because Microsoft licensed the codecs to Novell and Novell customers not to everyone. So to use those codecs they have to be sourced from Novell.
New deal will have to be struck on this for the new company. Yes one of those annoying traps Miguel De Icaza got to disregard while working at Novell and protected by the deals Novell had.
Smoke and mirrors. Its legal for me to use .Net micro framework. This is not Mono you download it from microsoft http://en.wikipedia.org/wiki/.NET_Micro_Framework and its legally free and clear.
My point is mono is not legally safe. This needs to be addressed. Not sweep under carpet and hope it goes away.
Invalid. Legally free and clear to be used by the Novell MS deal covered stuff. New company not covered by this deal. When deal expires toast again. Providing tutorials don’t void patents. If it did h264 would not be patented. There are tutorials how to code that up as well. By the patent holders.
Again part of the Novell MS deal. Does not mean patent clear in any way shape or form. No different to the mp3 patent case where the developer of mp3 openly promoted the software for many years then asked for patents payments. I can invite a person to talk about H264 at a conference does not make its patents magically disappear.
Same Novell MS deal again. Google staff are not allowed to accept MVP. Why its award to people who help the profitability of Microsoft. Setting people up to be sued in future would be perfect grounds to grant a MVP. MVP is reason for fear not any form of magical protection.
Again Novell MS deal. Again people don’t mean clearance from patents. H264 examples again.
How dumb are you. MIT/X11 license contains no patent grants or transfers. So no legal coverage transferred from Attachmate to anyone else. Thank you Miguel De Icaza for systematically removing GPLv2/v3 from the mono code base to convert to MIT/X11. Yes wise selection would have been the Apache 2.0 license with patent grant. No not creating this legal nightmare. Now Miguel De Icaza is in the same boat I have been due to his actions.
Not important due to the sale process none of these Novell patents can be used against Microsoft. Their defensive use is no more.
It will not be attachmate making the patent claims you can bet some troll company will be used. Simple fact here Mono team is not well funded at the moment. The process of trying to fight in court would run them out of funds. So judgment most likely will never be required. Microsoft did not fire the Mono team is quite free and clear to sue their asses off.
If I was hating because of that I would also hate .NET Micro Framework What I don’t. I would hate AJAX and other html basic technically invented by Microsoft what I don’t.
Simple fact is Miguel De Icaza promised us a ECMA patent clear version over 2 years ago. He has not delivered on his promise.
If he delivered an ECMA+Apache 2.0 license stuff that is patent clear I would except that as tolerable out come. Gives us something safe to work with.
Do not expect me to be nice about mono until the legal issues are address. Other legally safe and clear .net frameworks I would not put up a single bit of resistance against using.
Smoke and mirrors don’t work against me. Calling me a .net hater does not work either.
I am a law following person. Who likes my software legal with min future problems to come back and bite me.
Also don’t forget that Unity uses Mono for scripting, and tons of iOS games use Unity.
I do not think that in game scripting you would use any of those patented libraries like WinForm (!) but use its language to call Unity’s own API and process some logic. Since syntax and such are allowed to use freely, Unity the game engine would not affect at all.
> 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.
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
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.
I don’t know what version of Visual Studio you have used but code completion is miles ahead of Eclipse …
Code completion feels clunky in Eclipse compared to VS2010 and I can’t use space or ctrl-space to complete which really slows me down.
The only bad versions of Visual Studio is 2002 and 2003.
I had to go back to using Eclipse the other week for an Android project and I felt like I was back in 2004.
2010, which is actually obvious from reading my post.
Well, ctrl+space works fine for me. Which part is the hard one, pressing ctrl or pressing space?
Eclipse will complete AND update import (using) statements at the same time PLUS take static type information into account. It will also make suggestions for naming a newly defined variable. VS2010 does none of these.
You know what I meant.
Using Eclipse 3.4, 3.5 and 3.6 … doesn’t work when I press space to complete, it brings the menu but does not let me complete.
CTRL + . does this.
Namespacing works differently in .NET, the file doesn’t have to belong in the directory
like Java does with package. So updating an import doesn’t make any sense unless you are doing some refactoring and Visual Studio does this just fine.
It sounds like you are trying to program c# like Java.
Why would you want to do this is beyond me?
Edited 2011-05-18 13:14 UTC
Sounds like you are trying to use Eclipse like VS.
VS is a great tool, for working the Microsoft way. PERIOD. And that is how in the .NET land think, for most part. (There is little wrong with that, until they start preaching…)
Yet, finding free libraries for Java? Are you (I’m really out of words here). As libraries and frameworks go, F/OSS or proprietary, Java is #1. The problem is not finding, it’s choosing.
I have a lot of respect towards VS and the work that MS has put into dev tools, but you are overdoing it.
PS: Problem with Android dev tools is poor UI editor and the fact that it uses an emulator, not simulator. Not Eclipse, per se.
Touche ..
I actually come from a Java background and moved to .NET, so I actually used Eclipse first. My main point was that C# and Java while very similar languages … are not the same.
I do, it all very geared towards people that develop on Unix, GitHub, SourceForge etc … Most .NET stuff that is worth using is on Codeplex, and with NuGet it a piece of piss to get hold of it and import it into your project.
Maybe I am, but whenever I go back to writing code in Java, it feels primitive in comparison. Eclipse is good but things like code completion etc. is far better on VS2010.
There is a lot of MS bashing on this site by people who IMO don’t really know a whole lot about dev work. So I do tend to be a bit defensive.
Edited 2011-05-18 15:39 UTC
This is off topic really.
There are other IDE’s for Linux. Kdevelop for one that is quite nice.
If ELispse sux so bad. Maybe it time to make one that works better or port like Kdevelop proper to windows.
IDE’s can be changed. Core language and the legal effects of are a completely different matter. Since if the core language has legal problems you cannot ship your applications.
If a IDE has legal problems you still can ship your applications(Unless its the IDE of course) and use a different one.
Also Mono IDE is ment to be Mono Develop not VS. So why all the chat about VS does Mono Develop sux as well.
Kdevelop is primitive compared to any of the “big-4” (Eclipse, NetBeans, Visual Studio, IDEA). It’s not nearly as powerful as any of them.
There are ones that work better. NetBeans and IDEA. Eclipse didn’t always suck. It’s just at some point, it became stagnant. By 2005 standards, when it was in it’s prime. it was pretty good. But IDEs have advanced a lot since then, and Eclipse has failed to keep up. Like I said, there are better ones out there. Like NetBeans and IDEA.
IDE’s can be changed. Core language and the legal effects of are a completely different matter. Since if the core language has legal problems you cannot ship your applications.
Mono Develop is not mature yet. There’s a lot of missing functionality, and it’s rather buggy. The best path to go down might actually be for someone to write a mono / C# plugin for NetBeans. There are tons of other language plugins for these IDEs after all. A lot of Ruby on Rails developers love Ruby Mine, which is InjelliJ IDEA with plugins for doing Rails development. There’s no reason plugins couldn’t be written for doing Mono development.
Edited 2011-05-19 00:06 UTC
Huh? Of course you can. Ctrl-Space triggers code completion in Eclipse. Where on earth did you get the idea it doesn’t?
I don’t like Eclipse myself. I much prefer IDEA. But I guarantee you that Eclipse does support Ctrl-Space code completion.
Eclipse is crap. It’s been stagnant for years. NetBeans and IntelliJ IDEA are both way ahead of it now.
Eclipse’s WTP tools are so bad, they are almost unusable. Visual Studio is significantly better than Eclipse.
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.
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.
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.
Voids end of this year. So as a wise troll I will wait until then. That you did or did not means nothing. The deal with Novell was only 5 years. So any attachmete or novell protection ends on that day. If you are still distributing past that point you are on your own.
Maybe. But the problem that you should have known what your legal allowances were. So it will be willful or incompetence for infringement. Unless of course you have contacted MS to take out a patent deal directly when the novel deal expires. Hopefully they charge lightly.
Also not valid. You will be asked to present where you got the patent grant. Basically at best you will be able to claim incompetence but that does not protect you under the law. This line has been tried in court with the Linux kernel. It don’t work.
Redhat does not install Mono by default. Redhat would not be attackable. Canonical is in a country were software patents don’t apply. SUSE will be in a country where if I lose my patent claim I am up for costs. So you making a iphone app without a legal team to protect yourself will look quite good.
In fact most 500 companies either run windows servers or php and java based sites on Linux and Unix. Their is almost no Mono usage in that department to go after
That only applies if the version you got from mono is the same version MS provided. Not some feature mono added extra. Tampered with code based are pricks because what appears protected can turn out not to be.
Microsoft does not sell patent outright. They always include a clause. You cannot attack anyone using Microsoft Platforms. So MS .net users are off the menu. But Linux include android and iphone and os x users would be on the menu.
Read the fine print of OIN. This is nasty but since the application is on a iphone this is not a Linux kernel based item. It is not pure mono its a subform not listed in OIN protected parts. So calling OIN gets you no where. If application is on Android you might be able to call on OIN. But you said iphone app.
You are still alone at point. Did this help Tomtom. Answer no. As a troll my company is a shell so after I am done with you it cease to exist. So I really don’t care how muddy they make my current company name.
In-fact USA Patent law suxs. Because as the person attack with a patent I don’t have to prove its valid or invalid. Its upto the attacked to prove that its invalid. At the attacked person costs.
Tripple damages if its proven valid on any distributed past this point. USA patent law is a ass. Since you paid for a program and include in its documentation is a statement about the patent deal that laps you are stuffed. True its in the documentation for iphone and android runtime from novell.
Tomtom tried this does not work. You have no legal rights to direct a court to process another case first.
If I have proof you should have know about possible patent issues with the code base and you have not done the required actions to address. Injunction will be granted even if you are trying to work around patent now. Because its incompetence that you are in court so injunction is simple to get.
Very hard to win. And you are talking 4 years in court costs to get to this point. Also as a troll I can be despicable and demand inspection of your code base. In the process somehow it leaks. Since as a troll my company has no assets trying to claim damages for code loss is not an option.
Does not apply in a USA patent court. Those are anti-trust defense. Those are not use against patent trolls. Patent originator is not a factor.
Twice the price is when you have to pay the winners court costs as well. iphone apps mostly don’t make more money than the claimed court costs(Yes USA law has no requirement that they be real costs of the legal case either). Twice would be nice but I would expect it to be more like 3 to 4 times the income the application really made.
As a troll this does not matter. Way because this goes to anti-trust that does not apply in a patent hearing. If you win this you might be able to get payment for how much you lost to the troll out of Microsoft. Yes you now have to take MS to court. No sane lawyer will suggest that defense.
Nasty part about being a troll. You will. My company has no assets. So you are still up the creek.
Yes their are reasons why Redhat is forced to settle with Trolls.
ADO.net is only an example. Other sections in Mono that have never been released as Apache 2.0 by Microsoft and are not under the ECMA or any other patent grant.
Wakeup if you go to court you lose.
PS MS patent transfers to trolls are for the full life of the patent. Just leaves MS with a forever license covering them and their customers.
So how long I as a Troll have held the patent is not a factor. I am due the income for the patents complete life.
Yes USA patent law sux’s since its allows this kind of transfer. Sale of all rights.
Absolutely…
The trolls say two things:
1. .NET is a copy (of Java) and is not special in any way.
2. .NET is unique and there are patents that are ONLY covering re-implementations of .NET technology (mono).
You are obviously a type two troll, so please enlighten me what is it that is so special about ADO.NET technology that only the mono project can possibly hope to implement this (advanced) technology (presumably covered with MS patents (only)) …
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.
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.
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.
Despite his controversial views at times, Miguel De Icaza is an absolute coding genius. I can definitely respect that. I hope he treads carefully with his new venture and doesn’t get bitten in the assembly.
Moonlight doesn’t work at all so it’s useless and should be discontinued
Sadly, I have to agree that the quality is not there. I would rather see it fixed than scrapped but I would rather see “native” GUI Mono frameworks on the mobile platforms than a Silverlight clone.
Sadly, I have to agree that the quality is not there. I would rather see it fixed than scrapped but I would rather see “native” GUI Mono frameworks on the mobile platforms than a Silverlight clone.
A successful approach to the question “how to make money with an open source product”.
How can it be deemed “successful” at this stage ?
Do you need a lot of examples or a few would suffice?
You can’t even get .net devotees to code for WP7, so who actually wants a .net toolchain on android or iOS?
Answer.. no one.
Might use it if it were completely cross platform and free. My understanding is that it is neither.
Snooze.
I doubt that anybody really cares much what you do. Certainly a company providing commercial products is not going to lament losing you as a “customer”. Your attitude does not remind me much of those that are our there creating compelling Open Source solutions.
Mono is completely cross platform. The GUI toolkit’s on the mobile side are platform specific by design (because it is a good thing).
What exactly is “cross platform and free” that could break you out of your stupor? On iOS and Android? Ah, nothing? Correct.
So, your statement does not actually imply much of an argument.
Yes, there is not such a solution. Thus, I use the native dev kits. Which, if nothing else, are gratis and widely adopted by the majority of devs on each respective platform with little risk of them not being updated for future api iterations.
Reality is, no one really important really cares that much about anything anyone really posts here. That’s not why anyone really does it, anymore than people use twitter to become the next lady gaga.
Ahhh… A person that does not know.
What’s common between iOS and Android is: C/C++, most unix utilities, OpenAL and OpenGL.
Except for input, a game can be mostly unchanged between iOS and Android.
And who is funding his new company?
Has he after Ximian truely found another victim? Impressive!
Indeed. I was wondering how much VC money he has to burn through this time. Obviously Mono wasn’t paying its way at Novell.
While bringing a quality framework to iOS and Android they will open iOS and Android development to .NET programmers. Suddenly, there will be much more competition.
Even if Windows Phone won’t conquer the market, .NET programmers will conquer it anyway. My bet on .NET seems to be more worthy as the days goes by.
The only thing I wish for is to see WPF being implemented in Mono, so devs can use WPF for iOS/Android tablets.
Why do I have a feeling that MS will buy Icaza’s company at some point in the future?
I also have the feeling that Java is starting to fade out.
Edited 2011-05-19 00:30 UTC
1. Icaza makes a new company to further develop mono for iOs and Android
2. Icaza makes strong implementaion of .Net and Silverlight
3. most iOs and Android devs are moving towards .NET land
4. Apple goes nuts
5. software houses are making nice cash using .Net on iOs and Android
6. Xamarin makes nice cash, too
7. buy Xamarin
8. profit!
I have to say, I don’t care about .NET and it turns out most of the embedded and enterprise folk don’t either. If you are doing Desktop development then you are probably targetting Windows, but you are also possibly a species in decline. Most of the action these days is for the Web, and the growth is in Mobile. .NET is a minnow in these areas (sure, I’m sure there are examples, but the majority of folks use either Java in Big Enterprise or Java/Dalvik or Objective on mobile).
I do a lot of Java. One of the best things about it is that I can give code to other coders (who don’t have a PhD like me) and they can grok it. This is important on Big projects that take years to complete and have so many staff you are guaranteed not all who start the project will be around when it finishes. Unfortunately the desktop bound, tiny-project VS weenies don’t seem to get that “Simpler is Better”.
The earlier poster mentioned NetBeans. This is a superb IDE (easily beats Eclipse and Visual Studio). Even better, it works everywhere I need to be. From:
* my MacBook at home (do a bit of LockOn game modding in my spare time)
* to Linux for my big government and big corporate clients
* to Windows for smaller clients (the occasional smaller government department that lacks skills in Linux/Unix that their bigger colleagues have).
This is where .NET falls over. Mono is still missing big chunks and having to choose between Mono’s libraries and the Microsoft libraries simply blows chunks.
So, I use Java and it works well for me and my customers, and it works pretty much everywhere (over my recent career I’ve done Internet scale enterprise with it, desktop, web, embedded systems, hardware accelerated 2D and 3D graphics, hard-out scientific computing).
You can keep crowing about your new little language features in C# (while ignoring all the cruft that is accumulating as yesterday’s ‘new’ becomes unfashionable – and it is just fashion) that don’t matter a whit to productivity in a million-line program (and make it harder for new starters to follow).
Java ain’t going anywhere. Mono and .NET will both be long gone before the Sun sets on Java (just as C won’t ever be killed for some applications). Want the facts, well check the figures:
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Most of the developers in the World are using Java (and C). Far more than C#. This is not because they lack the *skillz* but because they realise to scale you have to *keep it simple*.
Edited 2011-05-19 08:07 UTC
I do agree on the KISS philosophy to deploy Java instead of other less-ubiquitous alternatives.
Unless one has the need to use special features of specific platforms, there is little to no net efficiency gains from ‘doing something different’, considering the change costs and risks involved.
Arguably, this is also one of the reasons why Java is creating inertia for the growth of other platforms. I see Javascript as an important alternative which might gain traction provide Java loses its mind-share on developers and enterprise.
Interesting points. Although Javascript is not really a general-purpose language, and the variation of Javascript between browsers is a bit painful. Technologies such as Google Web Toolkit allow you to bypass Javascript for the most part, and still work in Java client-side an server-side.
For me, it’s difficult to see why mobile developers would want to buy Visual Studio, a whole bunch of development tools specific to one desktop and the whole .Net juggernaut.
Microsoft seems to think that because most developers have to develop for Windows if they want to create a desktop application then that logic applies everywhere else. It’s a fatal mistake IMHO.