Mono Comes To Android
hairyfeet writes "After releasing Monotouch for iPhone which allows c# development on iOS, Novell has announced the availability of Mono for Android. Will this give us the 'one language to rule them all' that Java failed to bring, or will the bad blood between the F/OSS groups and Microsoft make this a dead end?"
Will this give us the 'one language to rule them all' that Java failed to bring, or will the bad blood between the F/OSS groups and Microsoft make this a dead end?
Neither. It will be exactly what it already is today, just one of many programming languages.
We already can program Android in Java (and Scala) and script it in Python, Lua, BeanShell, Perl, Tcl, JavaScript and Ruby. I hadn't noticed the multitudes crying out for Mono.
-=Maggie Leber=-
First, it is mono. Beside any technical argument. There are a lot of people who do not like mono, because it is an incarnation of evil (alias MS). I am not saying that it is, but many people feel that way. So this is definitely one obstacle. Second, Android and iOS are different enough to be different on the low level aka programming language level, which will result either in compatibility libraries which are wrappers and resemble at some point internal DSLs. And they result in another abstraction layer which costs memory and CPU power. When you used an iPhone 3G/3GS you already find your phone to slow. So why torture yourself with slow software. And fourth, there are other cross platform approaches which use external DSLs which do not introduce another layer of abstraction at runtime, only on built time. For example: http://code.google.com/p/applause/
Miguel de Icaza, is that you? Because nobody else really gives a shit...
I've abandoned my search for truth; now I'm just looking for some useful delusions.
As I understand it, here is the chief complaint that people have about Mono: Microsoft could have some sort of patents that could apply to Mono; and Microsoft could in the future use these patents to do something bad.
I have never seen any specific examples given, it's just a general "there could be some patents" argument. In fact, I believe the theory is that these could be "submarine" patents, not known now but lurking invisibly.
Here's a specific example. This is a long essay about this very issue. What is the danger if we use Mono? "[C#] was developed inside Microsoft, so it's likely they have many patents to cover different aspects of its implementation." Got that? "it's likely" Microsoft has "many patents". Citation needed.
This is the 21st Century, and patents are not only public, there are patent search engines. Where are the specific examples?
The situation is even crazier due to the passage of time. Microsoft introduced .NET in the year 2000. It is now the year 2011. Patents in the USA today have a term of 20 years. Presumably these submarine patents were not filed the same year as .NET was introduced; that would be far too obvious... they were probably filed a year or two ahead of time. So presumably these patents have a maximum life of under 9 years, and probably under 7 years.
In the past 11 or 12 years, nobody has noticed these deadly patents, lurking. But wait: these could be true "submarine" patents, where the patent was filed but not granted yet, and Microsoft is using sleazy tricks to extend the filing period and delay granting the patents. This implies that the patent must have been filed before 1995, when the US patent system was changed (patent term went from "17 years after patent granted" to "20 years after patent filed", specifically to fix the problem of submarine patents). Thus, a true "submarine" patent would have to have been kept going via sleazy tricks for over 16 years now, and nobody has noticed it yet.
So, if I understand correctly, we shouldn't use Mono because it could be a trap. Microsoft could have patents nobody has noticed for a dozen years that will expire within the next nine years that could apply to Mono. Or else they could have pending patent applications that have been pending for over 16 years without anybody noticing; those would apply for 17 years after the patent grant finally occurs in the future.
And if the above turns out to be true, and you wrote a program in C#, what would Microsoft's remedy be? Would you be forced to pay them huge sums of money? Would you be forced to give ownership of your source code to Microsoft? Not likely, and anybody who claims it is likely needs to provide legal precedents showing such a remedy in a similar case. No, the only realistic remedy would be that you would have to choose between buying some sort of licensed version of Mono (to comply with the patent licensing terms), or stop using Mono.
And the obvious exit strategy is to rewrite your C# app in Java. That would be a pain, granted, but hardly the end of the world.
And that is even assuming that Microsoft was successful in asserting these hidden patents. After offering C# up as a free standard, and not taking any action for a dozen years, to suddenly assert hidden patents would leave Microsoft wide open to the "unclean hands" legal doctrine. It's hard for me to imagine Microsoft prevailing in this.
And nobody has yet proposed a motive why Microsoft should do this. How does Microsoft gain by backstabbing the C# community? In the near term they could gain some patent licensing fees, but in the long term they would be alienating people they have been trying to woo. How likely is this, really?
So, in conclusion: because of this nebulously scary potential situation with possible unknown Microsoft patents, Mono and C# are
lf(1): it's like ls(1) but sorts filenames by extension, tersely
With regard to your "find an excuse to not hang out with after work" comment. Actually, it are pseudo-academic language snobs who are avoided. The kind who love adding layer upon layer of complexity (including switching languages and tools all over the place), and take pride in their l337 skills for doing this. They can be great developers but are shitty *designers* (too bad they're usually so clueless at design they never even see or consider this aspect). Remember, great design is about *removing* stuff. As Einstein said, "As simple as possible, but no simpler" [note: this is actually misquote of what he actually said, but it is commonly enough used and conveys the same meaning in fewer words]. That means *fewer* languages, not more, should be preferred.