We’ve already seen some heavy discussion on Mono and C# here on OSAlert the past few weeks, as it became clear the patent situation regarding the ECMA parts of Mono was anything but faith inspiring. This issue seems to be resolved now: Microsoft has made a legally binding promise not to sue anyone who uses or distributes implementations of said ECMA standards. Following this news, Mono will be split in two; the ECMA standard parts, and the rest.
Microsoft announced in a statement that the ECMA standards that cover the C# language and the Common Language Infrastructure will be covered by the community promise patent license. This is a legally binding document that cannot be withdrawn in the future; in other words, it’s perpetually active. In a nutshell, this is what this means:
It is important to note that, under the Community Promise, anyone can freely implement these specifications with their technology, code, and solutions.You do not need to sign a license agreement, or otherwise communicate to Microsoft how you will implement the specifications.
The Promise applies to developers, distributors, and users of Covered Implementations without regard to the development model that created the implementations, the type of copyright licenses under which it is distributed, or the associated business model.
Under the Community Promise, Microsoft provides assurance that it will not assert its Necessary Claims against anyone who makes, uses, sells, offers for sale, imports, or distributes any Covered Implementation under any type of development or distribution model, including open-source licensing models such as the LGPL or GPL.
This development comes courtesy of the Mono project itself, as Miguel de Icaza explains. “A few months ago we approached Bob Muglia and Brian Goldfarb at Microsoft with a request to clarify the licensing situation for the ECMA standards covering C# and the CLI (also ISO standards, for the ISO loving among you),” he writes on his blog.
Since Mono comprises a lot more than just the parts covered by the ECMA standards, De Icaza also announced that Mono will be split in half. “In the next few months we will be working towards splitting the jumbo Mono source code that includes ECMA + A lot more into two separate source code distributions,” he explains, “One will be ECMA, the other will contain our implementation of ASP.NET, ADO.NET, Winforms and others.”
Before we all start cheering and getting out the champagne, I do believe it would be nice to see someone with legal expertise to look over the Community Promise to see if there’s anything unclear in there. One thing that bothers me about the Promise is that it only covers those implementations that implement all required portions of a specification; partial implementations are not covered. I’m not entirely sure what this means in practice, but it does raise a few questions.
In any case, it’s a good development.
I am pretty sure MS has some other ammunitions to fire.
If all threats could be neutralized, mono will be undoubtedly a good thing.
Come on, give them a break already.
MS now has both open standards (ECMA), and open promise not to sue, and you bring on more “doubts”. If what you’re doing is not FUD, I don’t know what it is.
ECMA does not make open standards – it^aEURTMs just a publishing house.
Also, C# isn’t really an open standard by many common definitions. See http://en.wikipedia.org/wiki/Open_standard
It’s pretty much what Microsoft already implemented, which isn’t how open standards are created.
I do not doubt that Bob Muglia and Brian Goldfarb want to do the right thing, but I very much doubt that none of those guys who actually lay out the WORDING want to do it in a way that has no gotchas.
And even if we can be sloppy with other company’s wording, we should scrutinize EVERYTHING that comes from Microsoft.
I don’t think without the constant bickering about the patent situation we wouldn’t have this good result.
Good times
I think you are right, but before we happily jump around I still have some toughts (I have written it on that page also). Here it goes:
And Microsoft never ever broke a promise in it’s entire existence… right?
You know. A promise is something different than a contract or official written unbreakable declaration. You can promise anything, but as long as it is no official statement you can always declare someone is acting not right on some vague grounds, and declare the promise not longer binding. As long as there is no written contract a promise means nothing…
And it’s only a part of the story. Mono is partly tied to closed API’s from Microsoft. Microsoft can easily “upgrade” those API’s to make them incompatible with a part of Mono. They also can continuously “extend” those code to make mono always lag behind, making mono the second citizen ands less desirable than the “original”. That last thing can then be used in the marketing FUD as a example how Linux is “not capable”…
I still am not convinced – sorry…
Just my 2 cents.
It might be called a promise, but it’s legally binding. Do you understand legally binding? It’s a perpetual, legally binding one-way patent license that does not require signing or royalties.
as you said, we need to call lawyer to clarify this… before some people start pretending as lawyer
Edited 2009-07-07 09:51 UTC
I don’t know about that: I think Microsoft’s position has been made pretty clear, at this point.
You do realize that Microsoft is famous for breaking even legally binding contracts, don’t you?
There is, after all, a good history of that going all the way back to its founding. Of exceptional fame is Microsoft’s move to break its PC-DOS/MS-DOS contract with IBM when sales were greater than expected so that it could continue to extract royalties beyond the contract’s provisional period.
Yeah – never trust Microsoft to keep its word – even if legally binding. It’s a reputation they earned.
This was rather obvious. I hope this will end this rather boring story.
Now it’s time to compete and show that those Unix/Linux technologies are truly better than others
Personally, I think .NET is a great technology and I’m expecially amazed by the big eco-system of additional modules/technologies/solutions/extensions developers are building upon it. While most of interesting ones are still made by MS itself, there are lots of interesting stuff by independent developers.
As a developers, we’re fairly interested in being able to spread our software to Linux/Unix variants, as long as there’s a good compatibility degree.
I can see the reason behind people who would like to use C# over GTK+’s C.
On the other hand, I cannot see the reason to use C# in favor of Qt’s C++. The latter is just so beautifully done that coding in it feels easier than Java for the most part.
Must be the reason why C# hasn’t taken up at all among most KDE devs.
One thing that bothers me about the Promise is that it only covers those implementations that implement all required portions of a specification; partial implementations are not covered. I’m not entirely sure what this means in practice, but it does raise a few questions.
This means that you can’t ship broken implementations. I’m not entirely fond of that limitation, but i’m not bothered by it either.
And don’t forget that shipping broken implementation could be done by purpose to fragment or to lead to confusion and problems or to counter technologies that could harm your own stuff by removing that threat from your implementation (even if this is unlikely in specs which only cover language implementations).
Microsoft knows this tactic very well
Well, what if Microsoft updates C# and doesn’t get the standard updated.
Then Mono would need to be updated to remain compatible, but the updated Mono would not be compatible with the standard specification and hence would not be covered under this promise.
Actually, that’s not needed. MONO could just delivery compatibility with latest version covered by that promise. Then, anyone interested in achieving compatibility with MONO would use that version.
It’s definitely a step in the right direction.
I’m glad all these discussions and fuzz around Mono and particularly C# have led somewhere..
That is nice but how much is actually covered? in the case of .NET, does the promise cover both the ECMA components as well as the likes of ASP.NET, Winforms, WPF etc.? The issue isn’t the boring and mundane components but the sexy parts that sit on top which Mono require for compatibility between their implementation on *NIX and the Windows implementation.
The way I read the agreement is that the promise is only over the ECMA specifications; which basically means nothing in the grand scheme of things. Without those components outside the ECMA specification, .NET is pretty much useless. It is the stuff that sits ontop of the ECMA specification in the form of ASP.NET, WinForms etc. that bring value – and .NET needs to implement those technologies for compatibility (whilst persuading programmers to use GTK# instead of WinForms).
We’re back to square one until Microsoft makes a promise for the whole .NET stack and not just the ECMA specifications.
I agree that this doesn’t do to much for those that want to do .NET on Linux, but it should be a big boon to those who aren’t interested in the entire .NET stack and instead just see the C# language itself as something of interest.
Its useless for someone interested in C# because anything of any value sits above the ECMA specification and if they wish to turn it into a real world skill then they’ll have to learn about the technologies about the ECMA specification. C# has no value unless there are some value added components that sit on top – and given that Windows holds the dominances, compatibility with the value added components on top of the ECMA specification is paramount, not only for compatibility, the viability of interoperability but also for developers interested in C# and turning it into a real world skill.
Just as there is no value in C, C++ or any other language without the stack that sits on the top, be it win32 in the world, .NET Framework when it comes to managed C/C++ or the SUS03 specification when it comes to the *NIX world. Microsoft is the only company I can think of right now who threatens third party projects who reimplement a given framework on an alternative operating system. Ballmer first threatens opensource programmers over the re-implementation of win32, file formats, ‘icon lay outs’ etc. on *NIX by claiming that Microsoft will ‘exert it’s patent portfolio”. When it comes to the .NET Framework they do the least humanly possible on the parts that have the least amount of value, namely, the ECMA specification is covered by a promise but anything of any value is still threatened by Microsoft’s business policies.
This is Microsoft as usual, muddy the water in a hope that the murkiness will hide what their real business plan is – suck developers and third parties into an abyss so difficult to escape that when the time is right, they can screw those organisations for all they’re worth. The patent challenge to TomTom was merely a shot over the bow, “f*ck with us, and we’re happy to tear you a new hole – even over a trivial thing like an ancient file system driver”.
Actually, it’s not useless at all. It is useless for .net, but not everybody cares about .net itself and some just want to use the language with other components. C# is actually quite a nice language imho, and it’s nice to have this part, at least, finally cleared up.
It should be interesting to see what happens with regard to the .net portions of mono. Somehow, I have this sneaking suspician they won’t be so kind to Mono when it comes to .net.
On the issue of the non-ECMA specified parts, I pretty much agree with you. Developers interested .Net as an exit strategy from Win32 are essentially in the same (legaly unclear) situation as before the community promise. And frankly, it would not be in Microsofts current interest to make it easier to move away from their operating system and plattforms. They may have mellowed on the idea of F/OSS developments, but only as long as it happens to target Win32, preferably exclusively.
That being said, a legally safe(r) ECMA C# implemenation is of benefit to FOSS projects like GNOME, which are in need of an alternative to the C/GLib-GObject/GTK+ combo as a first class development platform which (from the outside, judging from comments from the developer community) seems to be possible with C# / CLI / GTK#, if for no other reason than recruiting people who have no desire to get their hands dirty using C.
What hacks me off is the fact that you don’t see the sort of patent happy stupidity from the UNIX world if people dare to implement the SUS03 specification, we didn’t see Sun sue third parties that implemented the Java framework (as long as they didn’t call it Java), and we haven’t seen Apple sue GNUStep developers for reimplementing OpenStep. Why is Microsoft the only company who seems to have this desire to be the ultimate prick of the software world?
Ok, lets say they go down the route and develop a uniquely open source framework ontop that is oriented around GNOME – it doesn’t answer the $64,000 question: who is going to implement these on Windows? GTK+ right now is a giant mess with little attention being paid by anyone – GTK# is dependent on GTK+, so if the GTK+ is horrid, then the GTK# is going to be horrid too.
It has to be re-implemented or otherwise you loose one of the key features of .NET, add to that the requirement to integrate these frameworks into a decent development environment like Visual Studio (ever used Mono Develop? it is a really bad joke) so that developers can drag, drop and assign code to GTK# widgets like they would with Winforms.
Like I said, I believe the ECMA promise that Microsoft has given to the community but the problem that I have, however, is the stuff that sits on top – there needs to be a compelling enough way of making the mono open source framework (that sits on top) compelling and transparent enough for Windows .NET developers to adopt as to expand the ecosystem to include Linux as a platform to aim for during development of applications.
Edited 2009-07-07 14:32 UTC
We also haven’t seen Microsoft suing Mono for reimplementing .NET. In fact, this is them going out of their way to make it explicit that they will not sue, something that I doubt Sun/Java (pre-GPL) or Apple/OpenStep ever did.
Did you read the article? the promise only covers what is standardised under the ECMA standard – the interesting parts like gdiplus, winforms, asp.net and so forth are excluded – so the threat still stands for those banking on mono to turn their winforms application into a multiplatform solution without needing to do extensive re-coding.
Yep, I read the article, however the article has nothing to do with your comment or my response. You were saying that Sun hasn’t sued anyone over Java and that Apple hasn’t sued anyone over OpenStep, and then insinuated that somehow that made them different than Microsoft. I then pointed out to you that Microsoft has also not sued anyone over Mono.
Again, winforms and asp.net, et al, are not the only interesting things about .Net. Those are useful libaries for doing Windows specific GUI development (WinForms), and Windows specific server side development (ASP.Net). For Linux, those things are useless, other than for possible cross platform migration.
But, again, the C# language itself is useful. The CLI itself is useful. And GTK# is very useful.
1) Neither Sun nor Apple ever promised not to sue for their patents. It is just the FOSS community’s paranoia that is driving the distrust of MS.
2)MONO is not the WINE of .net. Who cares if GTK+ sucks on windows? the goal of MONO is to replace C with C# as the preimire dev technology on GNOME.
You are correct about that but given that Apple hasn’t said, “implement OpenStep and die” as Ballmer threatened the opensource community with such an announcement – I feel pretty safe. As for Java, they made it clear; the only request was don’t call it Java – call it Chocolate Milkshake if you want but if you want to make it Java you have to pay a fee.
If your goal is to make a replacement to C, only use the ECMA standardised components and create a uniquely GNOME integrated .NET like Framework – then all power to them. The problem is that there will be those who expect it to be multiplatform – something that mono needs to state, therefore, that multiplatformness is a secondary priority when compared to making Mono into *the* framework, and C# the language to use.
Its good that they’ve split the two but I’d like to see an explicit removal of the non-ECMA components from the mono-project altogether. Make it a pure ECMA + Open Source with a declaration they have no interest re-implementing the non-ECMA components.
Nice to see this forum is filled with the usual maggots who moderate posts down they disagree with instead of entering dialogue. Every time I see my posts being marked down it tells me that I am correct and there are a pack of cowards in this site who are intellectually deficient when it comes to mounting a counter argument.
It is amazing isn’t it how political technology has become. To which 99.9% of end users ask “What the hell is wrong with these people?”. What is even more shocking is the level of fanaticism displayed over something that is so inconsequential to life. 7 NATO soldiers died today in Afghanistan, and yet what is the one subject that gets people emotional: silly software rants. Not to say that people should rant and rave about the war here, but I point this out to put things in perspective. As far as I know, Mono usage has not killed anyone. If you know of Mono setting off an IED, please do post it here.
My motto, if you like it=use it. If you don’t like it=use something else. You know, it really is that simple. And if for goodness sakes you are forced to use something you don’t like, well then find a new career or hobby. I really think some may need to find a new hobby if it makes their lives so miserable. Enjoy what you have while you have it.
The only posts that should ever be hidden because they were so voted down are comments that are truly off topic, or so offensive as to derail the conversation. But the popularity of down voting in a discussion truly defeats the whole purpose of having a discussion form in the first place. We may all at some point in time be guilty of it, or some votes could be questionable. But maybe repeat offenders need have their right to vote removed?
hah. no, it is not! it’s about creating a clone of .NET. period. straight from the horse’s mouth:
i am so tired of people making this just about patents. of course microsoft is going to continue to make shallow and/or vague patent threats in perpetuity. just like they ALWAYS have.
the only thing this ‘promise’ does is extend novell’s insufficient coverage to others. it still doesn’t cover everything.
but even if there was NO patent threat, it is flabbergasting that so many people have no problem with playing a constant game of catch-up, forever and ever. mono will ALWAYS be a ‘me-too’ or a ‘second best implementation’. that is the very nature of the project. considering MS’s… errr… history, why would anybody even *want* to take that on?
that simple fact is why a good number of people don’t want to be any further entrenched in mono than necessary. that is why we shouldn’t be pushing mono as a development platform. a compatibility option, sure. but never installed by default. and NEVER critical.
Agreed. I do believe that Miguel de Icaza’s original goal was to make C and C# the dual pillars of Gnome development. And that is where the errant perception likely comes from. But Miguel, smart as he is on technical matters, can be a real fruitcake when it comes to what is reasonably possible in dealing with real OSS developers and real OSS projects.
At most, C# is or will become one language, among many, that one can write Gnome apps in.
Edited 2009-07-07 16:31 UTC
That’s one of the goals of Mono, however it is not the only goal. Hopefully this splitting of the mono project will make that clearer.
FFS… this again. Mono is NOT playing catch-up. Mono already implements C# 3.0. Who cares what Microsoft is doing in its stack on top of the ECMA-bits? The Free stack is not a moving target, and that’s what’s important.
who the hell are you to define what is important? mono developers have defined it _exactly_ as a platform to develop and run .NET apps on multiple platforms. this includes everything that MS is doing in its stack on top of the ECMA bits. and that is obvious, considering that mono is… well… always playing catch up with those ‘bits’.
Mono CLR implementation is also always going to be slower than the “real deal”, Microsoft implementation of the same thing. So, if someone writes server software with Mono, it’s easy for a Microsoft salesman to demonstrate how it executes 20% faster on Windows platform.
It’s sort of a gateway drug, but it *can* help get some free software written.
Do you have any benchmarks to back this up? Because that’s not what I’ve heard. Most of what I’ve heard indicates that it is a mixed bag, mono is faster at some thing and the MS CLR is faster at other things.
I’ve even heard of people shipping mono to run their apps on windows, so it must have something going for it.
Googling “mono .net benchmarks” brings up several. I would be surprised if it was any other way; jit-ting is pretty research-intensive problem domain, and any innovation Mono makes is directly visible to msft (but not the other way around).
Did that. Most of benchmarks where 2 years old, and I didn’t find any using mono 2.4.
I only found one benchmark for mono 2.2 which concluded that MS was 50% faster than mono 2.2 for numeric computation. However mono 2.2 was 50% faster than mono 2.0 so work is obviously being done. And either way the java JDK 1.6 was 50% faster than the MS CLR.
I didn’t find any benchmarks for a modern mono vs .Net under any sort of server load. If you have one please let me know.
Relaxe dude. The non-ECMA bits are not important to Linux development. Banshee, Tomboy, F-Spot, Gnome-DO, Beagle, etc. are all free and clear. This is good news for anyone still on the fence about including Mono in a default install.
You’re getting worked up about a virtually non-existent market of cross platform application developers using Mono/WinForms as a base. Mono doesn’t even need .NET to be relevant and that has been proven time and time again with every new GNOME application that uses Mono.
there isn’t as much of a clear line as you would purport. i believe i even read somewhere else in this thread that f-spot uses ADO.NET. but even that isn’t the point.
F-Spot uses Mono’s own sqlite adapter library with an ADO interface. Previously the sqlite adapter library did not conform to ADO interfaces. There is no inherent issue with possible ADO patents. Anyway, if that wasn’t the your point then what was your point?
Edited 2009-07-07 21:57 UTC
the point is that there are *many* reasons that *many* people have decided to avoid mono. it is an affront to the community to ignore the concerns of a quite large number of people. the patent issue is only *one* issue, and this news doesn’t really change anything. as a matter of fact, the pro-mono side has been trumpeting the patent issue so loudly that it’s drowned out the other legitimate concerns that people have.
a very vocal minority of well-appointed people have been pushing for the inclusion, by default, of mono applications on several distributions. considering the backlash, it is plainly obvious that these apps should simply not installed by default. it would still be a simple task to install these apps (and mono) for those that so desire. it is disconcerting that valid concerns are being ignored.
my personal concern is that a lot of effort is going into chasing a .NET-shaped target. you plainly don’t agree. and, i’m not about to spend hours debating that.
everybody has different reasons for liking or non liking mono. but there are absolutely less controversial alternatives to the framework and the applications created with it. and it would be very trivial to defuse this whole obnoxious situation by simply not installing by default.
Like what? What are the other issues? How is mono an “affront” to the community? It’s GPLed software. People like you are becoming a problem for people like me who just want to use the software.
I think you have that backwards. A very vocal minority of people bitching about Mono’s inclusion think they should have the only voice on the subject. Most people don’t care.
I don’t get it because it doesn’t make sense. Mono development on Linux has absolutely nothing to do with where .NET is at. When .NET 5.0 comes out it will have absolutely no affect on linux desktop applications. It’s a pointless argument against inclusion.
I don’t think that is a valid reason. Just because some people went of the deep end doesn’t mean we should listen to them.
people like me? holy crap, you are so off base. why would i try to prevent it if “people like you just want to use the software”? go use it to your heart’s content! i appreciate that you have the right to use what you want to. but, to the contrary, it is people like YOU who are becoming a problem for people like ME who would rather not use something that so many people have a problem with.
the hypocrisy and melodrama is unbelievable. almost NOBODY is calling for the death of mono. we just don’t want it in a default OS install. there are too many valid concerns. you can use it! i don’t care! nobody cares! it is the pro-mono side that is trying to push itself into EVERY aspect of the linux desktop. and that is a problem.
You still haven’t named ONE valid concern. You just keep reiterating that there are many concerns but fail to name anything that actually makes sense.
Talk about melodrama. You are just too over-the-top. Somehow wanting Tomboy in the default install is “trying to push itself into EVERY aspect of the linux desktop”. It’s one program and you are absolutely flipping out over it. There isn’t some grand scheme to push Mono onto every desktop but there sure as hell are groups (Boycott Novell for example) trying to keep it off the desktop.
I’ll give you similar advice that you gave me. If you don’t like it don’t use it.
that isn’t true. have you read all of my comments? no, i didn’t think so. almost every thread about mono gets filled to the gills with reasons, most of which are buried (errr… censored) or berated or called ‘irrational’ for no reason. i didn’t think it was necessary to relist scores of reasons that were simply going to be trampled upon. you KNOW what they are. whether you agree or not is moot.
you don’t seriously believe i’m just talking about tomboy… right? there have been pushes to include several mono programs in many categories into default installs, plus ALL of the mono dependencies. in the case of f-spot and banshee, this even includes some aspects NOT covered under MS’s ‘promise’. how do these apps connect to sqlite again?
i don’t. but it’s easier to add than to remove it and all of its dependencies for the average user. it’s better to keep easily accessible in the repositories for those that need it. which is, arguably, not too many people.
Censored? You are being incredibly melodramatic now. Your criticisms have been rebutted to death without any valid reply from you. Let’s take a quick look at some of the criticisms…
Mono is too big Boost + gtkmm is even larger yet it is ok for Gnote.
Mono is patent encumbered The community promise takes care of that.
Mono is chasing .NET It’s not. .NET development has no bearing on Linux application development with Mono.
F-spot uses ADO.NET Actually F-Spot uses an ADO.NET interface for its sqlite connection, that’s it. If you don’t know what that means stop bringing it up like its the end of the world.
Mono’s stated goal is to be compatible with .NET This is my favorite argument because it’s so dumb. Half of .NET cannot even be ported to Linux because it is MS specific. Everything that can be ported is being ported for the utility of it and ease in porting applications should the need arise.
You’re making me laugh now. It’s obvious you have no idea what ADO.NET is, how it works, or what the sqlite connector does. It’s NOT a big deal despite the fact that you are making it out to be.
now THAT is laughable! the ‘promise’ does most certainly NOT take care of mono! it supposedly takes care of C# and the CLI. and that’s pretty much it. if it took care of mono, then miguel wouldn’t have announced the ‘split’. (which, i acknowledge as a good idea but should have been implemented from the absolute beginning.)
like hell it’s not. you can make your arguments that the .NET-specific bits don’t effect linux development all you want. but, that does not change the fact that as .NET has evolved, mono has followed suit. so, yes, it IS chasing .NET. and, as a matter of fact, it is mono’s most useful and compelling feature, regardless of the devs intentions. mono’s use as a sort of .NET compatibility solution in the enterprise is the only compelling justification i can really come up with for its continued development.
edit: almost forgot something. i don’t know of anybody that claims mono is “too big”. are you confusing this with the fact that fedora didn’t want to include it on the livecd for fedora 11 because tomboy was the only app using mono and wanted to save the space? because, nobody is seriously using “too big” as a real reason to be “anti-mono”.
Edited 2009-07-09 15:56 UTC
It takes care of everything needed for the Linux desktop. That’s all that matters when the discussion is about inclusion in distributions.
It works the other way too. Mono has developed faster in some areas and MS had to play catch up. It’s not a solid argument either way. Again though it has absolutely no affect on the Linux desktop.
Then you’re clueless. There has been article after article about Mono development for GNOME while I haven’t seen a single article about running .NET programs on Linux with Mono. You can claim that the most important thing about Mono is .NET compatibility but no one actually using it agrees with you. You’re trying to force your opinion down people’s throat. People want a nice environment like Mono to ease development. GNOME/Mono developers care about developing new applications for GNOME not running Windows .NET programs. Mono is still useful for enterprises anyway if they target Mono and not .NET. I don’t see the problem.
Actually it has been used as an argument. It sounded like another one of your crackpot arguments so I threw it in there but other people have definitely said it.
i never said that was *how* it was being used. only that this is the only compelling reason, in my opinion, for it’s existence. which also brings up another good point:
first off, the “crackpot arguments” aren’t mine. my most critical personal reason for avoiding mono is that in my opinion, it is best suited as a use-when-necessary compatibility environment for those that need it. and that pretty much sums up where i stand. since i don’t need it, i don’t use it.
as for the other arguments, they belong to thousands of people. my main beef with the current situation is that distros are ignoring *thousands* of their users for something that ultimately doesn’t matter, all for the sake of applications that HAVE ALTERNATIVES. there are MANY reasons people aren’t using mono. enough of a critical mass to consider not installing it by default. that is my position. so, don’t project your vitriol at me.
again, with the hypocrisy! i am not trying to shove my opinion down anybody’s throat. i’ve said, time and time again that i could not possibly care less if somebody wants to use mono. i may think it’s ill-advised, but that isn’t my call to make. it’s the people pushing mono that are shoving their framework down people’s throats! you are absolutely unbelievable!
edit: typos and formatting
Edited 2009-07-09 17:05 UTC
That makes no sense. That’s a rare use case for most Mono development. It’s even more maddening considering that is what you base most of your criticisms on. The largest development base for Mono has been GNOME applications but you steer the conversation to cross platform application development because it suits your argument better. It’s dishonest.
The alternatives suck. Sorry but that’s why people want the Mono applications. Gnote is a cheap ripoff of Tomboy. F-Spot doesn’t have a single competitor that is even close for the GNOME desktop. Banshee is younger than Rhythmbox yet more advanced. Gnome-DO has no equivalent on GNOME.
Really? I’ve done nothing but point out how the arguments against Mono are nonsense. I uses Mono applications but there is no default install for my distro so these decisions don’t affect me directly but I can’t stand to see so many lies and distortions spread about a great environment that produces excellent applications very quickly.
Edited 2009-07-10 13:54 UTC
it makes perfect sense, because… for *me*, i see it more valuable in that sense. it’s a matter of opinion, and no matter what people ARE using it for, i consider mono most useful for cross-platform application COMPATIBILITY… NOT development. it’s not dishonest. it’s my opinion. but, i mentioned it because you mentioned all of my “crackpot” ideas… that weren’t even my personal opinions. my whole point is that there are MANY people with MANY reasons to not want to use mono. that is ENOUGH of a reason to avoid installing it by default.
says you! gnote is not a cheap ripoff. it’s a case study. some dude wanted to see if he could easily port it. he could. now there is a non-mono option. but it’s ridiculous that note-taking is being used as justification to include mono, because notetaking is a very niche application. barely anybody uses it. the fact that there are few alternatives only illustrates that there is no great demand for that sort of app. as far as f-spot goes, you’re just wrong. not to mention the fact that lots of people HATE f-spot. there are absolutely alternatives. gthumb, for just one example. it’s not as ‘fancy’, but people use it, and it’s stable. as far as music players go… there are so many that it’s just obscene to act like banshee is the ‘best’. it simply isn’t.
that isn’t true. you have done nothing but point out *your own personal opinion*. you answers are not universal. that is the main problem here. there are people… LOTS of people… that do not want to have mono thrust upon them. it simply isn’t right to make mono apps default installs when so many people do not want them. there is nothing stopping people from installing them. they have that right if they need or want to. you’re acting as of this is some sort of pseudo civil rights issue. as if mono users are being unjustly discriminated against. well, they aren’t. get off your high horse. having mono apps available to those that want them, but not installed by default is a perfectly acceptable compromise. it’s the mono side that insists upon pushing the issue to this extreme.
That’s why your arguments only make sense to you. It doesn’t make much sense to attempt to persuade people of your position by appealing to your own narrow beliefs instead of what is actually happening in reality.
You don’t even attempt to make a logical argument. I said the alternatives suck and I meant it. Gthumb does not compare to F-Spot by any stretch of the imagination. Good for you if gthumb suits you but a lot of people want a REAL photo organizer with tagging, a timeline, excellent editing and export options, etc. What GNOME application is better then Banshee for playing music? Rhythmbox was left in the dust long ago. Banshee was what convinced me to use Mono in the first place because despite the fact that Banshee started later it has been superior for quite some time.
Take a hard look in the mirror. I am arguing from the point of view of what Mono is currently used for and what people are looking to use it for in the future (mainly GNOME application development). You’re taking your own opinion, which is completely separate from reality, and using that as the basis for your argument.
Are you listening to yourself? You start off by saying people are having Mono “thrust upon them” and end by complaining that I am acting like this is some sort of civil rights issue.
I can’t even take you seriously anymore. I’m torn between wondering if you are a professional troll or just completely self centered, ignorant and oblivious.
first off, you’re twisting the context of what i’ve said. i told you why *I* don’t use mono. and i also made it clear that this has no bearing on why i don’t think mono should be installed by default. i made it exceptionally clear that it should not be installed by default because MANY people have MANY reasons to avoid it. enough of a critical mass of people NOT wanting mono to justify NOT including it by default.
bull. gthumb is simple and effective for most people. for those that need more of an iphoto-style solution have other options. and most users are not that concerned about everything being built for gnome. notwithstanding the fact that picasa for linux isn’t even exactly a native linux app, more people seem to use that than f-spot.
music players seem to be a very personal choice for most people. no one music player is perfect for everybody. i actually use decibel. exaile is nice, as well. and rhythmbox does fit the bill for most users, as well. (though i don’t like it, actually). i think it’s best to go with the simplest option for this sort of app, and let people choose if they want something more complex later. but, the point is, no music app is going to work for everybody. so, might as well stay simple.
once again, you are entirely misrepresenting my argument. my opinions don’t matter for anybody else. and i realize that my opinions aren’t universal. but, lots of people do not want to use mono. you can say whatever the hell you want. but, the fact remains. there are people who do not want it. THAT is REALITY. my argument boils don’t to respect for the end-user. since there are so many people that DON’T want mono, and since there ARE ABSOLUTELY alternative apps (whether you like them or not), there is no reason to piss off so many people by installing mono by default. you obviously have no sense of empathy. nobody is trying to stop you from using mono. freaking use it to your heart’s content.
get real. people ARE having mono thrust upon them. and you’re acting like people are trying to ‘keep mono down’. that isn’t the case. they just don’t want to be forced to use it.
like you EVER did?! you are so wrapped up in your crusade that you can’t see that there are a lot of people that have reasons to be concerned about mono’s inclusion by default. they are not all crackpots. they are not all irrational. the truth is, i feel bad for you. you obviously have no sense of what it means to be empathetic to other people. it must be a terrifyingly lonely life you live. i am done with this conversation. you obviously don’t get it. this isn’t about my personal reasons for not using mono. it’s about the fact that lots of people have lots of reasons and you can’t understand that THAT is enough of a reason to not include it by default.
No there’s not. There’s a vocal minority of trolls (like yourself) who keep insisting that Mono should not be included in a default installation regardless of what applications are excluded because of it. No sound arguments are ever produced to back this position up.
Why don’t you start you own distribution? That way you can make sure that there’s no Mono in the default installation, and you’d be free to use second-best-of-breed applications (gthumb, rhythmbox, gnote) all you want.
I’m done with this argument. You are impossible. If you don’t want to stick to the facts then it’s useless to even argue. You’re going to believe what you want to believe. All I am asking is that unstable and irrational people like you don’t ruin Linux for the rest of us based on bogus arguments and a total misunderstanding of basic facts. It’s obvious from your arguments that you don’t care about Linux as much as you care about making a statement against Microsoft. Some of us have more important things to do than stick it to Microsoft.
If you want to believe you represent the majority of Linux users you have another thing coming. I do have to say though that I am still quite stunned that you think your opinion of Mono (no matter how uninformed it is) is somehow more important than the actual truth of the matter. It is quite telling of your personality in general. You seem to be adamant about not letting facts affect your opinion.
Edited 2009-07-13 00:18 UTC
According to http://www.mono-project.com/SQLite it uses ADO.NET.
So F-Spot and other database using programs (Banshee) are indeed in the firing line.
According to http://www.mono-project.com/SQLite it uses ADO.NET.
So F-Spot and other database using programs (Banshee) are indeed in the firing line. [/q]
You misunderstand what is going on with ADO.NET in F-Spot. The SQLite adapter was written for Mono but did not conform to ADO.NET orginally. Now it does. This just means that the DB can be accessed using a standard ADO.NET interface. There really is nothing wrong with that. If there was ever a reason that it could possibly become an issue it is trivial to remove.
Strength of Java or .Net lies not in the language itself but the platform. If you take libraries (or whole subsystems in this case), robust virtual machine and development tools out, what you are left with isn’t worth more than Ocaml or Free Pascal (which are fine languages, BTW).
Now, with an equivalent language (Java) readily available (and not just the language, the whole portable platform, with multiple implementations from various vendors, including some very liberally licensed), why would anyone bother writing new applications with Mono? (Mono, not .Net, which is a good platform for writing Windows software).
The core framework of both languages is portable across platforms. The difference between Java and C# is that Sun provides the JSP framework, and their (sucky) UI framework to all platforms. Microsoft does not. But just like Java, there are plenty of Open Source and 3rd party cross platform libraries that are drop in replacements for them.
As a Mono developer who was there on day 1, I can say, with confidence, that you are very very wrong.
Mono was created to make it easier to write applications on Linux. The original goal of Mono was never to be the WINE of .NET and our main goal has not changed.
We’ve implemented Windows.Forms for completeness and to aid in porting Windows .NET apps to Linux, but it was never our focus.
well, as a person who can freaking READ, no i am not very very wrong.
do a quick google search for ‘mono’. then, do yourself a favour and read exactly what comes up as the summary for the mono website. i dare you.
if that isn’t the position of the mono developers, then that should most definitely not be how they officially describe their project.
straight from the horse’s mouth:
which, you’ll have noticed, is precisely what i said.
Edited 2009-07-08 02:23 UTC
No, you insinuated that the primary goal of Mono (e.g. what’s considered “important”) was to make it easy to get Windows .NET apps to run on Linux. That is wrong, and the statement you quoted above does not back up your statement at all.
Mono *does* provide the necessary software to develop and run .NET client & server apps on different platforms, but the statement doesn’t claim it was our primary objective (aka “most important objective”).
The Mono-project website lists “porting Windows .NET apps to Linux” as the fourth major feature of Mono.
http://www.mono-project.com/Main_Page
Correct, but it has never been our primary objective.
Correct, but it has never been our primary objective. [/q]
okay, so now you’re just going to bend the truth, then? that is the primary objective listed right there on the web for all to see.
i’ve run into you before. 2+2=5 is your modus operandi. i have made my point. now, go back into your hole. you know you’re not here to convince me. you’re here to convince others that actually read my post at face value and realize that i’m right.
Dude, jsteadfast has been a part of mono since its inception. If anyone knows what the goals of the project are it’s he.
Or you can take a look at this interview with Miguel from the time of the original announcement in 2001:
http://www.theregister.co.uk/2001/07/09/why_it_pays_to_embrace/
i know who he is. you’re missing my point, and he’s either ignoring it, or being shady about it.
so, i’ll briefly recap:
user modmans2ndcoming states “MONO is not the WINE” of .NET and that goal of mono is to replace C with C#
i replied with “hah. no, it is not! it’s about creating a clone of .NET.” and provided a direct example where the mono project stated as much. so, once again, straight from the project:
that is not taken out of context. that is what shows up from the project when you do a google search for mono.
user kelvin stated his opinion that mono was NOT playing catchup because “Who cares what Microsoft is doing in its stack on top of the ECMA-bits? The Free stack is not a moving target, and that’s what’s important.”
at this point i reaffirmed what the mono project itself claims it is doing, based on what they SAY they are doing publicly, on the web.
jstedfast states that i am VERY wrong and that “mono was created to make it easier to write apps on linux and that the original goal.
at which point, i rebutted and pointed once again to the statement made BY THE MONO PROJECT.
it should be obvious to anybody without a bucket over their gigantic egotistical head that i am pointing out the difference between what the mono-project says in one place and what it says in another.
the theme here, ahem, is that the project’s most vociferous proponents can’t get their story straight.
and your quote from miguel doesn’t support OR disprove what i’ve said. he just says that he’s embracing .NET and that this mean many things to many people.
but, frankly, what jstedfast says, and what miguel says, are simply not important to me. they have shown time and time again that they will say whatever they need to in order to sound ‘right’.
You should include the full statement from the project, which is the following:
Mono is a software platform designed to allow developers to easily create cross platform applications. It is an open source implementation of Microsoft’s .Net Framework based on the ECMA standards for C# and the Common Language Runtime. We feel that by embracing a successful, standardized software platform, we can lower the barriers to producing great applications for Linux.
That is directly from the mono project website when it describes what mono is. It looks to me like Miguel and jstedfast have been stating the same all along.
you see, the thing about the internet is: YOU don’t get to tell ME what to do!
if the official summary of the mono project FROM the MONO PROJECT’s website acquired from a google search is not an accurate description of the project, then they should change it! i am not incorrect for pointing out what THEY, themselves, have said, in a very public way.
I agree, and by no means have I tried to tell you what to do. What I posted was the official summary of the mono project, from the mono project’s website, acquired by myself doing a google search.
Nowhere, in any statement the mono project has made, do they claim to be making a clone of .NET, or at least not one I can find on google. what you posted was “Provides the necessary software to develop and run .NET client and server applications on different platforms.”. That does not indicate or say anything about it being a “clone” of .NET. If that qualifies as a clone, there are bigger issues at stake as that would mean gnuCash and KMyMoney are clones of Quicken, Amarok is a clone of iTunes, etc. Just because something provides the same functionality does not make it a clone.
As with any software, if you do not want to use it, by all means don’t.
aha! but that is stretching the truth of the situation. gnuCash and KMyMoney are not clones. they are competing products with similar, yet different features. mono, on the other hand clones .NET pretty much entirely, and then adds some mono-specific stuff. there is the blatant difference. but, you’re arguing semantics over something that isn’t really my point anyway! you can call it whatever you want!
Edited 2009-07-08 16:22 UTC
I’m not sure I’m really clear on what this thread is about. But I suspect that Mono is many things to many people.
1. A .net clone.
2. A new language for OSS apps.
3. An insidious threat from MS-land.
4. A way to for Windows programmers to migrate to Linux.
5. A way to Become One with Microsoft. (I think Miguel is the only member of that particular camp.)
6. A horrendous memory hog.
7. A vehicle for pointing out how evil MS is.
8. An excuse to imply that all OSS proponents wear tinfoil hats.
9. Etc.
I suspect that any attempt to define Mono and its relationship to the community in an unambiguous way is doomed to failure. In the end, “Mono” projects onto people’s varying planes in different ways.
Personally, I’d say it projects way too much resource usage onto mine, but hey…
Edited 2009-07-08 16:10 UTC
i guess in my not-so-graceful way… that’s sorta my point. there are so many chest-pounding mono-supporters saying what it is and isn’t, that i had to point out an obvious contradiction, by citing the mono project directly.
is this better?:
As far as I can tell (and I might be completly wrong in this, because it has been some years since I did some GTKmm development and am pretty much out of the loop wrt developments in GTK land since then) the most probable answer to your question seems to be that they (=most of the GNOME devs, including pro-Mono segment) don’t care that much about the cross-plattformness of their Apps, e.g. if it runs on *nix systems (up to but not necessarily including Mac OS X) then great, everything beyond that is a bonus and up to the individual developers or projects to handle (e.g. there seems to be no policy of targetting Win32 and OSX as fully supported “alternative” plattforms like for example in the case of KDE4).
There – quite obviously, given the number of times people tout the superiority of C# – is enough interest among F/OSS developers of having soley C# together with either GTK# or – as it would be my preference, if I ever had or wanted to use C# – via Qyoto / Kimono with Qt 4.x and KDE 4.x as an alternative to C or C++, respectively. I can’t comment on the quality of the GTK# bindings or the available tools (incl. monodevelop), but if Qt/Jambi is something to go by, then Qyoto does not necessarily has to suck that bad.
To sum it up: If you want to use the C# together with a “pure” F/OSS higher level toolkit / stack, this community promise *might* improve the legal uncertainity considerably. If you think that Microsoft will help anybody writing cross-desktop applications so that their OS is no longer the sole or even preferred plattform for deploying the products: I would not hold my breath while waiting for that happening
Edited 2009-07-07 15:13 UTC
Mono can and does supply its own independent stack that sits on top of C#. Some people who know more about this than I do even claim that some of the mono bits are better than the equivalent .Net bits. Unless you are porting a windows .Net app I see no reason why you shouldn’t be able to write fully usable Mono/C# apps without touching any of the .Net bits.
Not useless at all. Period. First, the C# language itself is a very good language, with a lot of great features, nice familiar syntax, great power, with ease of development. Next, the CLI has great value. It’s a great garbage collecting VM, and has great multi-language support.
Finally, the GTK# / Gnome# bindings are very valuable. Of all the various development stacks for Gnome/GTK, I have found GTK# to be the most powerful, useful, and productive.
Then there are things like the Unity framework, which uses Mono for it’s scripting, and gives you the ability to rapidly develop games for both iPhone and Wii.
There are other examples as well.
BTW – the Community Promise is legally binding. There is no muddy water. At all. ECMA bits are free and clear. ASP.Net, ADO.net, WinForms, etc, are not. But I’m fine with that as well, as those things are pretty much Windows specific anyway, and if MS wants to license those things, that’s totally fine with me, and it’s well within their rights. As a big fan/user of open source software, I’m quite happy using FOSS technology, along with using for-pay proprietary technology (where there is added value). I also earn my living and support my wife and kids working for a proprietary software company (a very small one), and I think proprietary software has it’s place (and is needed where open source can’t fully deliver).
As far as I’m concerned, the whole Mono controversy is now officially put to rest. If you like Mono, and/or Mono apps, use ’em. Don’t worry, be happy.
I completely disagree with that statement. Having used C & C++ on Classic Mac OS, MSDOS, Linux, Windows, BeOS, and in embedded systems, there is most defiantly some value in having the same language constructs independent of what ever libraries you also have available. That doesn’t make every program written for any of the platforms perfectly portable, but it does meant that a sizable part of your skill set is. And from the looks of it, the CLI & C# language specification contains most of the stack you would use ( with the exception of winforms and ado.net).
Everything I have read here seems to mean that only the ECMA parts (CLI, C#) are covered by that promise.
What this promise accomplishes, AFAIU, is that applications developed with the “Community promise + Free software” stack will be as much at risk from patent litigation from Microsoft as any other free software.
As for .NET being useless without the “sexy parts”, I can only argue that GNOME Do and Banshee (Music player) are two very useful applications, for which I have yet to see better alternatives for my Gnome desktop.
[quote]As for .NET being useless without the “sexy parts”, I can only argue that GNOME Do and Banshee (Music player) are two very useful applications, for which I have yet to see better alternatives for my Gnome desktop.[/quote]
Dare I say it, but Amarok and Krunner would be two at least as useful applications for your Linux KDE4 desktop.
Except Amarok has vertical tabs, for which its developers will be sent to hell.
And of course, he was talking about the GNOME desktop.
Of course he was talking about the GNOME desktop.
What he said (when you boil it down) was that in some cases, if you want the best applications for GNOME, then you must have Mono installed … and I agree … and what I then went on to say was that if you want equivalent good applications for Linux, without Mono dependencies, then the thing to do is switch your desktop to KDE4.
I tried to be brief … but some people try to twist your meaning when you do that … so if you want me always to ramble on with long explanations like the above, Thom, then you are going the right way about it.
Switching desktops is overkill, KDE4 apps will run in Gnome; if anyone is willing to accept the overhead of mono for a music app or app launcher, then the kde base libs shouldn’t be an issue either.
Well yes, except that if you take the approach of running the equivalent KDE4 apps under GNOME, then you still have the problem of having to have Mono installed.
So what I actually said still stands: “if you want equivalent good applications for Linux, without Mono dependencies, then the thing to do is switch your desktop to KDE4″.
Just as GNOME can run KDE4 apps, so too can KDE4 run GNOME apps.
Edited 2009-07-08 01:34 UTC
Lemur, as an INTP to an INTJ, it sometimes does pay off to add more “fluff”. I have no problems grasping the frame from which you write your posts, but our types form two minorities in the world.
I’ve always bumped into people not understanding me, to the point of me now explaining pretty much everything. Sometimes to the annoyance of the people around me.
As for KDE4 having comparable technology… Good to see alternatives available. It doesn’t help though if you <u>want</u> to run Gnome as your desktop.
Still, if you only use ECMA-MONO + Gnome technology, you can use Tomboy, FSpot, Beagle and Gnome-DO safely, without having to worry about MS dragging you to court over their core .NET patents.
Now that MS has clarified their position on their patents, I wonder what the other ECMA participants Intel and HP think about their patents and the core of .NET.
Apperantly, Amarok 2 (afaik starting with 2.2) will use a breadcrumb – alike navigation concept to replace the vertical tabs.
http://amarok.kde.org/blog/archives/1016-From-the-Post-2.1.0-Git-Va…
http://amarok.kde.org/blog/archives/1056-From-the-Post-2.1.0-Git-Va…
There is also SongBirdNest which is pretty good – its a little newish and rough around the edges but it is a nice for those who want an iTune’ish like interface that is themeable.
I don’t find there’s much to choose between Banshee & Rhythmbox to be honest.
Songbird (Songbirdnest is just the web domain) looks like being the future in a Firefox-y way. It’s quick, stable and usable for me and the plug-in community is excellent. You’ll need a separate CD rip/burn, video player and podcast downloader but they’re apparently coming in the next 6 months or so…
Agree. No parts of .NET are covered except C# and CLI.
This conclusion is strongly supported by the act of Mono splitting itself into two parts … essentially being one part which is covered, and one which is not.
What it does mean, happily, is that recent announcements by Debian and Ubuntu have lost a lot of import … both can now ship just one half of Mono (the covered half) as part of the default install.
So GNOME will have the covered parts of Mono installed by default … that is almost a guaranteed outcome now.
This will quite possibly cause some defections from GNOME.
Please read through Annex D of the EMCA 334 spec. This pretty much lays out what is included as part of the “C# language”.
The spit is entirely driven by the hysteria you and others like yourself exhibit with regards to Mono.
Yay, progress! Hmmm…
I completely agree, and I think it is a good thing. The gnome community will come out of this much stronger than it was before.
What this does is to allow decisions regarding the covered portions to be made on a technical basis. Mono has some problems on that front; Notably, resource usage. But those issues have, so far, mostly gotten lost in the heated political debate.
Ever the KDE troll, huh, Hal? An alternative, or perhaps complementary view, would be of an influx of devs who prefer a safer, managed language to the buffer overflow minefield that is C++.
I’m hardly an enthusiastic Mono/C# fan. But at least this legally binding promise, and clear separation of code, will neutralize the political doomsayers and allow the debate to move on to matters of technical merit.
Edited 2009-07-07 16:18 UTC
http://techbase.kde.org/Development/Languages/Qyoto
http://techbase.kde.org/Development/Languages/Smoke
Edited 2009-07-08 01:43 UTC
I think much of the drama has been about the “boring parts”. Namely, the boring parts ensure that Tomboy, F-Spot, Banshee and Gnome-Do are on firm legal foundation.
Which is just snazzy. Congratulations for everyone involved.
Edited 2009-07-07 11:03 UTC
As far as I know, F-spot uses ADO.NET to interact with sqlite. So they need another database technology. This has been known for YEARS.
I just took a quick gander at the code and it seems to use Mono.Data.SqliteClient. I didn’t find any reference to ado.net, but I only looked quickly. Even if it does use ado.net in some corner of the code it should be fairly trivial to replace it.
It’s not a problem for Linux software. Linux applications don’t use WinForms or any other non-standardized code from Microsoft.
Precisely.
Also, if as a developer you are looking to be able to write cross-platform C# applications, then the obvious thing to do now is write the apps on Linux with Mono/Gtk#/C#/CLI in the first place, and then deploy them on all platforms. Even better if there is a Qt# library instead of Gtk#.
Make sure however that you don’t install the “bad half” of Mono. You are then covered by Microsoft’s promise, and your application’s users won’t have to pay any license fee to Microsoft.
Edited 2009-07-07 14:06 UTC
There are two things that mono tries to do. The first is provide a modern, free platform to develop against. The second is to provide an easy way to port existing .net apps to linux.
If you are using mono to develop linux apps, you aren’t going to use anything that is not covered by this promise, you are going to use the linux stack that has been built on top of mono. If you are using mono as a compatibility layer to deploy your .net apps on linux, the future legality of that is still up in the air.
Basically it is a promise to keep their promise required under the EMCA standard?
“Microsoft will be applying the Community Promise to the ECMA 334 and ECMA 335 specs.”
It only applies to the ECMA specification material, yes a step in the right direction but doesn’t do that much for mono implementation as mono is much more than the ECMA specs. So again, lot of current and future MS “IP” still out there to be wary of.
This basically is just an easy way to comply with the ECMA standards RAND requirements. Now MS doesn’t have to deal with RAND licensing request . . .
BTW still not posted (9am CST, 7-7-09) on the Microsoft Community Promise web site, so this is a promise by a blogger ATM . . .
Edited 2009-07-07 14:12 UTC
We’re not “back to square one” at all. As I understand it, Mono is being used to develop GTK applications, mainly targeting the Gnome desktop; potentially providing compatibility with .net applications targeting Windows is a side-benefit, not the main goal. The “sexy windows bits” can be removed completely — and apparently will be, in one of the distributions — and Mono will still be able to perform its primary intended function (of enabling GTK/Gnome development) perfectly.
As someone with rather deep suspicions about the Mono/.Net patent situation in the past, I would like to first of all give credit where credit is due and say “kudos” to the Mono devs and to Microsoft for taking this (first, big) step towards clearing the legal situation.
In a different parallel universe, I would write endless lines, woundering about why this took so damn long, how this is supposed to be big news since the Mono folks always pointed out that the ECMA specified part was safe from patent threats and everybody doubting this clearly had to be a MS/Mono/Novell hater or even worse a KDE user, etc.
But this development is causing optimistic feelings, and I try to enjoy this unfamiliar emotions as long as they last
Since wearing a tinfoil hat sooner or later grows into a full – time occupation, I would like to wait for comments and analysis from other stakeholders (particularily the SFLC / Mr. Kuhn, FSF, RedHat and Fedora etc. ) before I pop the champange, though.
And while we are at it / at the risk of sounding ungratious and while the MS lawyer seems to be in the house: Could somebody please ask MS to clarify the therms of their Silverlight/Moonlight patent promise? Whenever I feel the need to get dizzy cheaply and legally, I only have to read the passages about who qualifies for a patent license.
PS.: Out of sheer ignorance: Is there any testing suite / documented and freely available reference implementation which can be used to gauge whether a specific implemenation is conformant to the standard or not? Thanks in advance
Edited 2009-07-07 10:17 UTC
I think this is a small step in the right direction. However, why could they not use a patent license like the one used by Google for Wave (http://www.waveprotocol.org/patent-license)? The Google patent license makes it quite clear that you are free to implement the wave protocol while for this Community Promise you probably need to be a lawyer to actually understand it.
Second: as far as I understand, this only covers C# and the CLI. While this is nice, what about the class library? Without that C# is pretty worthless.
Anyway, this is better then nothing and it is a step in the right direction.
EMCA covers the core libraries (System, System.Collections and stuff like that) but not MS specific stuff (Microsoft.*, System.Windows.* etc.) You can therefore use C# happily with Gtk# etc and not touch the MS specific stuff.
Embrace, extend and extinguish. Nothing more to say.
Yeah, they’re embracing, extending, and… Extinguishing… Their own work…?
Uh-huh.
Yeah, I think I was not clear.
There are people out that (like Icaza) that wants fundamental softwares, like Gnome, to be created with C#/Mono. Right now we have mono installed on some Linux machines by default. Thats great for MS. Once linux/BSD (user-land) is too dependent under Mono, they could just shut it down… How? They will find a way
I dont trust MS. Their past showed me its not a company I can trust. So why use their technology? They copied most of it from other languages anyway, so why not use Java, Ruby, C++, Object-C, Object-Pascal, Python, Smalltalk, ..?
“They copied most of it from other languages anyway, so why not use Java, Ruby, C++, Object-C, Object-Pascal, Python, Smalltalk, ..?”
You meant IKVM, IronRuby, C++/CLI, Oxygene, IronPython, S#, right?
Ok, just kidding. But to let you know, the current project I’m working on uses C#, Python, Java, and JavaScript under the same code base thanks to .Net architecture.
Technicly speaking, you could use other languages to develop for the JVM too. It may not be that easy (since the JVM was not made from ground zero to be multi-lingual) but It can be done, and there are some compilers around. Some real examples are listed here: http://www.is-research.de/info/vmlanguages/?s=compile
So if what we need is a VM where wecan use many languages, we could create our own or extend JVM or some other VM. No reason to jump to a “not-so-open” solution created by evil itself.
I know about that (except for the “created by evil itself” part).
For example IronPython (and DLR) has been done by Jython creator (Jim Hugunin) – who is now working for Microsoft btw. So you can do many stuff for JVM, too. (I think there was lisp for JVM, too).
Nevertheless, MS has added support for special constructs that made the VM flexible enough for many languages (e.g: I can directly use Pytho standard lib sources from CPython in IronPython without any modifications):
* Generics in the VM itself
* Extensive metadata
* Faster reflection based calls (from .Net 2.0)
* Nullable type support for the VM
* Several functional language constructs
* DLR (is actually an open source extension, but utilized by Python, Ruby and JavaScript implementations).
So, basically, MS did look at where Java fell short, and also at their own mistakes (like VB), and did a good job. And it helps me with my project, double kudos to them.
Edited 2009-07-07 11:40 UTC
So lets do the same. Lets see what are the advantages of .NET, the problems, and lets try to create or extend what we have with this new ideas. And not abandon everything to start over. If we abandon what we have everytime something new appears, we have a big problem Speacily if these include us losing (some of) our freedom.
Java copied Smalltalk. Objective-C *seriously* ripped off Smalltalk. Object Pascal was originally an Apple project that Borland ripped off, reshaped, remolded in the the Delphi variant. Python and Ruby I don’t know at all, but from casual looking seem pretty similar in syntax.
C# took ideas from a number of places… C for syntax, Java for class extensions in part, C++ in other ways. Object Pascal in a lot of ways too (though the C#/.Net architect also invented the Delphi Object Pascal syntax extensions, so that is hardly surprising..)
Nothing is original any more and using that as an excuse is not valid.
The fact they’re saying “we won’t sue you for implementing the base language” seems to imply (at least to me) “We reserve the right to sue if you implement anything of ours on top of that base language.
While this is essentially a green light for the GNOME people to stuff their desktop with all the bloated Gtk# stuff they want, it leaves those of us who really just want a way to write cross-platform apps (and run Windows .NET apps) in a worse position than we were before.
Precisely. Very succinctly stated.
Yes.
Perhaps not. It now seems possible to legally write cross-platform apps in C#/Gtk#. You can even write them using Mono on Linux as your development platform, then carry them straight across to Windows.
It looks like this promise is legally binding and and unrevokable in many jurisdictions, which is definitely a good thing. However, it has some loopholes:
1. It only covers a *full* implementation of the required portions of the specs, which means that even if a small part is missing in an implementation, it could potentially fall out from under the promise.
2. It only covers .NET versions up to the current version. It does not cover any future versions, which means Microsoft can change their minds at any given moment, leaving Mono to either remain stagnant or continue with the risk of being sued.
I can imagine a scenario where .NET 5.0 comes out and some company invents a great way to make money using Mono, directly in competition in Microsoft. Do you think Microsoft would hesitate to discontinue the promise when they release .NET 5.1?
People using Mono don’t give Microsoft any direct benefit. Microsoft’s strategy may be to expect more developers turning to them for support or buying their software because they’re already familiar with C#. What’s of note is that Microsoft are in direct competition over these developers with Java. What happens when Java gets marginalised by .NET/C#? Mono will have no more advantage to Microsoft, and they may decide to act against it. It already happened to other unfortunate companies.
And even if this promise were to remove all lawsuit threats and Mono could be used without any fear, it will still essentially remain under Microsoft control. What many people fail to notice is that Microsoft is calling all the shots on the direction where .NET is headed. I would feel very uncomfortable with part of the Free Software ecosystem depending on something under their control. I feel uncomfortable even having it in the default install of Ubuntu. It’s like everyone forgot who we’re dealing with here.
Not to mention the technical deficiencies like encouraging closely coupling your program to native libraries, the inelegance of putting x86 DOS code into the header of every .NET program, and the mess of a standard library.
In my opinion, if we must use a statically-typed interpreted language, we should go with Java. Some folks have been maintaining Gtk/GNOME bindings for Java (http://java-gnome.sourceforge.net/4.0/), why not give them a try?
Edited 2009-07-07 11:34 UTC
P/Invoke is the absolute last resort in .net, just like JNI is for java, to say its “encouraged” is completely false. And .net compiles to IL, which get JITd to native code on the first run, just like java and bytecode. I think someone has been feeding you lies.
Because Java sucks? There are fewer and fewer people even in the java world that like java, which is why there is such an interest nowadays in stuff like scala, groovy, and javafx.
Java vs C#, C# is the clear and obvious winner. When it comes to static languages, scala is IMO the most elegant, modern, and downright cool language around nowadays. And while I haven’t gotten into it too much yet, javafx looks like a fantastic language for UI, much better then general purpose languages.
Edited 2009-07-07 13:24 UTC
If this is true, doesn’t this make Mono GPL-incompatible (assuming the ‘promise’ is needed beyond mere clarification)?
I seem to remember the GPL requires it must be possible to distribute modified versions. If the ‘promise’ only covers full implementations, modified versions which omit part of the Mono stuff are not allowed, thus violating that part of the GPL.
The fact that it’s MS who introduces this restriction (rather than the distributor of the GPL’d software) shouldn’t make a difference (section 12 of GPLv3, but something similar was in v2 iirc).
I might be mistaken here, but please, make a convincing rebuttal rather than just shouting FUD at me .
A promise does not imply that the stuff not covered by the promise is forbidden. Therefore, this does not cause GPL incompatibility.
Right, hence my “assuming the ‘promise’ is needed beyond mere clarification”.
So either (a) the ‘promise’ is redundant and unneeded, and Mono was already unproblematic in whole and in part regardless of it, or (b) the promise is useful, but renders any project actually depending on it (such as parts of Mono) GPL-incompatible?
Edited 2009-07-07 16:09 UTC
When dealing with a devil always be prepared to be tricked. It’s really that simple. I would rather see resources put into another language that has no ties to Microsoft.
(btw referencing the devil is a metaphor and not a reference to bill gates.)
Great news. Good times =D
…as soon as they remove the X11 requirement for GTK# on the Mac.
If they were serious they would just release the patents to the public ensuring without any level of doubt they could ever be used as ammo.
… that Miguel was waiting for me to mail him (http://maratux.blogspot.com/2009/07/miguel-you-man-open-letter-to-m…) to make people at microsoft say something clear about Mono, I’d have done it a long while ago.
I’m very happy to hear of that! I don’t have much to say, other than that, though.
I’ve been saying this for a few months already, that this should be done to ensure that the legality of C# implementations on free software was firmly based.
I do still have my personal distrust for Microsoft, when it comes to free software (not that I’m implying they’re “evil” or anything, but I just can’t see a reason for them to help direct competitors) but I have to say they scored quite a few points in my opinion with this move.
There are a few not-perfect things here and there, and I’ll feel more happy after consulting this with a lawyer, but I can finally say I have no pressing reason to recommend not using C# now.
Thanks for all who got involved in the process of making this happen. Let’s just hope the free software community now puts it to good use.
Now here’s the deal with Mono and patent lawsuits. Yes, mono uses patented Microsoft technologies, but they are somewhat useful to MS.
MS will never sue opensource projects, because they have no money or aren’t doing something, that is decreasing MS incomes. But MS will definitely sue companies, that will create software using Mono and that software will somewhat compete with MS products.
Now remember FAT and TomTom. There were some time after MS patented FAT. But Linux or other company, that uses linux wasn’t sued. TomTom is the largest player in GPS market. MS also has some GPS market. So MS saw some cash and sued the richest GPS company, that uses Linux with FAT. Now TomTom are going to WindowsCE. Why?
So here comes Mono. If there wil be no good commercial programs, that requires mono, MS will not even bother to start legal actions. But if some big company releases some big product – MS will react. Imagine, what would happen, if Google made it’s Google Earth with Mono. They will be sued to death by MS. The same case works for distros. For example if Ubuntu somehow would impact Windows sales, MS definitely would search for some eveidences to throw that competition out of the ring.
So Mono is even good for MS, MS can wait for some big corp to come and use it. MS will then try to sue some money out of it.
My thoughts.
It’s exactly the other way around.
Microsoft would love the fact that something great was done with Mono. It’s the mindshare and programmers hearts they are after. If mono was to become a “standard” way of writing Linux software, it would leave Microsoft at the “choke point”, and utterly neutralize the threat of Java. They can basically start escalating the value of .Net stack rapidly (in areas not covered by the promise), and leave Linux eating dust; again to attract developers (“we are already halfway using .Net – why not go all the way now and benefit from $NEW_TECH).
It doesn’t hurt that the stuff written in Mono would run better on Windows.
Hah, the money from lawsuits is peanuts for Microsoft. The lawsuits are done to ensure their dominant position.