Post a Comment
You may not directly care as a user, but indirectly you do. GNOME and many other projects were founded on the ideals of Free Software. It is important that these ideals be upheld, not just for idealistic reasons but to guarantee the GNOME desktop is always available to you.
What's the biggest thing Linux users complain about - hardware support right? And we all know what the problem is there. Free Software "politics" doesn't seem so silly now does it.
That said, the argument for Mono at its core is about the IP bogeyman: is Mono truely Free? Or as some would argue, could Microsoft knock over the Mono playset whenever they feel like it?
To me, its obvious that Mono is Free; its a clone/implementation of C# and the .NET libraries - Which in itself is virtually a clone of Java with a mixin of a few miscellaneous features from other languages.
Edited 2006-07-23 22:13
You may not directly care as a user, but indirectly you do. GNOME and many other projects were founded on the ideals of Free Software. It is important that these ideals be upheld, not just for idealistic reasons but to guarantee the GNOME desktop is always available to you.
What's the biggest thing Linux users complain about - hardware support right? And we all know what the problem is there. Free Software "politics" doesn't seem so silly now does it.
That said, the argument for Mono at its core is about the IP bogeyman: is Mono truely Free? Or as some would argue, could Microsoft knock over the Mono playset whenever they feel like it?
To me, its obvious that Mono is Free; its a clone/implementation of C# and the .NET libraries - Which in itself is virtually a clone of Java with a mixin of a few miscellaneous features from other languages.
See, that's the issue I have. GNOME is supposed to epitomize the ideals of free software, it is after all the official GNU/Linux desktop.
But the problem is that GNOME is dependent upon the largesse of a number of commercial organizations all with different agendas, and I think this has come to a boil with Novell's self-declared positon of the community's best friend.
Mono is Free in concept; in reality it is owned by Novell, and in fact you have to assign copyrights to Novell if you wish to contribute to the project, because Novell reserves the right to allow organizations to waive L/GPL license requirements. For a fee, Novell will waive the license requirements and allow others to use mono in a closed manner.
That last reason alone I think is enough to keep mono from being part of the GNOME core, if only for philosophical reasons. LGPL is one thing, but to have the community endorse and grow a framework that Novell holds proprietary rights to commercially license without a return to the community is hypocritical considering GNOME's original existence was simply a response to Trolltech's ownership of Qt.
As for the patent IP issues, they exist, they're even mentioned on the mono project FAQ. MS owns patents on certain components of .Net, and the only way around it is to create non-infringing implementations, or to just avoid using those components altogether.
Interestigly, GNOME is getting itself in the same position it accused KDE of being in when the project started.
Just as KDE was free, but not enough due to the depedency on commercial-company-controled-with-a-dubious-open-source-license Qt, now GNOME is begining to depend on Mono which is (as "elsewhere" pointed) controlled by commercial companies, and is free, but no enough.
RE[3]: Politics are good, when done the right way.
"What is GNOME without F-Spot? Without Banshee? Without iFolder? And, most importantly, without Beagle?"
Now admittedly I'm not a GNOME user in general. I have one box that runs it. This is mostly because of the 20+ computers I have maybe three of them have enough proc/ram to actually run a full on DE. Anyway, of the programs you mentioned, I've found that F-spot, Banshee, and iFolder are pretty much useless and beagle spends most of it's time broken and not functioning properly, so it might as well be useless. I guess my answer to "What is GNOME without these?" is "useable".
Photo Management - okay yeah Fspot rocks there (Gthumb is a poor alternative in comparison)
Decent Music app - Whats wrong with Rhythmbox?
Decent Instant Search - well we have Tracker (and its a lot more instant, efficient and powerful but does not index as much yet but that will change shortly)
So its not a" Mono or Bust" situation in Gnome.
FWIW, sensible mono apps should probably be blessed but it does not change anything as distro's make their own rules - you could argue thats its irrelevant in the grand scheme of things
Decent Instant Search - well we have Tracker (and its a lot more instant, efficient and powerful but does not index as much yet but that will change shortly)
You know why Tracker is a lot more instant and "efficient"? Because IT DOES NOTHING yet. It loads NO filters, no libraries, nothing necessary to index files. It indexes filenames, you know, like LOCATE. Thats pretty worthless to most people and is not a next generation desktop search.
When Tracker starts loading up a shitload of plugs, an IM log parser for gaim, gstreamer and all of its plugins for extracting metadata out of music files, a filter to index HTML files, office files, calendars, application desktop files, help, etc... its going to use A LOT MORE RESOURCES and not be so INSTANT when the database goes from having only a couple items in it to having probably well over 10000x the number of items in it and a lot more libraries. Guess what, thats what Beagle currently does, its a little bit slower, yeah, but it does everything right now, already. You're not going to see it get any bigger, it only has optimizations to be done. Tracker has a lot of plugins, libraries, and other resource intensive tasks and problems that it does not yet account for, and until it does, don't try to compare it to Beagle, especially for resource usage.
You really are doing the equivalent of comparing bash to X11... bash doesn't do much with graphics... maybe a couple colors for backgrounds and text and stuff, but it doesn't do anything real with graphics. X11 is drawing windows, displaying a full GUI, and maybe even running OpenGL games. Would it be fair to compare the resource usage and memory usage of bash to X11? Just about as fair as it is to compare tracker (currently a filename search index) to beagle (something that searches every little bit of information that we have on our computer).
You know why Tracker is a lot more instant and "efficient"? Because IT DOES NOTHING yet. It loads NO filters, no libraries, nothing necessary to index files. It indexes filenames, you know, like LOCATE. Thats pretty worthless to most people and is not a next generation desktop search.
Tracker fully indexes all files (text contents + metadata).
+ it does way more with a full persistense engine, extensible metadata and tags - its technical superior to any dedicated indexer.
Tracker use libextractor to get at embedded metadata.
Please try it out before mindlessly bashing it. Oh Tracker is more efficient because its written in C and uses highly optimised engine (embedded mysql also in C/C++).
Photo Management - okay yeah Fspot rocks there (Gthumb is a poor alternative in comparison)
I never understood this. For my personal usage, I think Gthumb is superior to F-spot. Maybe I'm old-skool or something, but I really didn't like F-spot and I'm just talking about the program itself. I found it hard to use.
I don't like the current Mono implementation, but my comment on F-spot is without taking that into account.
I don't understand why everybody is so crazy about Banshee and F-spot.... Those apps do have great-looking websites though, and they also get a lot more press attention than other applications with the same functionality. But what does Banshee offer that for example Rhythmbox, gnome Listen and Quodlibet do not offer?
And what does F-spot offer that Gthumb doesn't? Or even GQview?
The Banshee, F-spot and Beagle apps seem to have some kind of coolness or flashy factor... maybe it has to do with some sort of advertising?
Personally I don't like F-Spot, I think it doesn't hold a candle to Picasa from google.
There are a lot of applications written in different languages, personally I think gnome have the right idea in keeping gnome in C due to language portability... It means that you can have direct ports to languages. Moving to a .net based platform will alienate Java developers (I prefer java to C#) as an example.
Wikipedia: "Politics is a process by which decisions are made within groups. "
we actually have a 'leader' who has the final say in the important matters: David. He, in the end, makes the final call.
Yes.. so you actualy propose to give up democracy and erect an omiscient and omnipotent leader...well people try to do this all the time:
http://en.wikipedia.org/wiki/Stalin
http://en.wikipedia.org/wiki/Mao
http://en.wikipedia.org/wiki/Fidel_Castro
http://en.wikipedia.org/wiki/Dictatorship
and well, all of them failed after some time as this "crippled" democracy is the best we have, eather in goverment or in OSS. Of course we(oss) should have somebody, who shows us the direction, but its not the elected person but rather "natural born" leader, the person whom others follow ...
Re Thom_Holwerda : Perhaps it's me, but the two sequences
And when that day comes, they appear to care about what we think, but in reality, all the time they are debating about what we supposedly want, all they really think about is "what do I need to say to get votes?
and
GNOME has no leaders or an elected board of some sort that can take important decisions after weighing the pros and cons as discussed on d-d-l.
confused me a little bit, esp. when considered that they appear in the same article written by the same person without an odd number of negations relating the two statements.
It's early in the morning here (at least for me after coding until 2 AM ), so perhaps I'm not in the shape to grasp a subtle aspect of your article, but :
You seem to suggests to introduce a board of community leaders which does the final decissions, no problem with that. Further, you seem to have some gripes about the sideeffects of democratic political systems. But you have also stated in at least one reply I've read so far that dicatotorship is no option either (glad to read this, btw).
My question : How should a board be elected, without campagning and dragging the whole discussion once again ? Since it's without doubt a controversial topic, it would definitly dominate the discussions during the election process.
Side note : I don't know about the situation in your country, but here in Austria general elections are approaching in autum, and the signal to noise ratio is trailing pretty fast, reaching even lower levels than usually. And if your only input channels are the evening news and the political discussions featured in in mainstream media,then it can be difficult choosing a party or individual to receive your vote. If (that's only my humble opinion, mind you) more people would pay attention to the day-to-day discussions and decisions in the large time slots between elections, then perhaps it wouldn't be so easy to replace an on-topic discussion (which is more or less the case with the discussion on the GNOME list, at least that's the impression I had) with loud ramblings and oportunistic behaviour.
regards
Just on the subject of dictators... in OSS several of them exist - and the communites surrounding those projects seem entirely happy:
http://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life
Suddenly politics don't become as much of a problem - as there is a descision maker who is never worried about saying the right things to become elected next time. They try and make descisions for the best of the project as they have nothing to gain or lose by "pandering" or "rhetoric". Of course this only works if the dictator *IS* benevolent. And frankly - it is open to a takeover or revolution, but that won't happen as long as a dictator remains benevolent.
I really dislike the discourse within the free software community about how there's too much politics. If there's too much politics here, why not switch to a corporate system where the only choices are "Yes" and "No?"
The reason why we have these debates is because we have a choice. We, on an individual basis, get to choose what we want to use. I think it shows a great deal of health within the free software movement that people are having dialogues about there opinions. YOu don't see that in a corporate software system.
Complaining about politics is a little bit like complaining about gravity. You can't just bury your head in the sand and hope it'll go away. It's a law of nature; an inevitable byproduct of human interaction. Politics exists because people have feelings, fears, preferences, prejudices, opinions, and a whole raft of other particularly human characteristics that are often related to rational principles, but are equally often independent of them. Politics are present in every human institution, and as long as GNOME is developed by humans and not robots, politics are unavoidable.
That said, even if it were possible to eliminate politics, it would not necessarily be desirable to do so. Politics, and its friend diplomacy, lubricates the interaction of people working on a common task. The very act of achieving a consensus is a political action. In a project where most of the contributors have no external force to compel them to follow a particular path of action, group consensus is the only mechanism through which progress can be made.
In the case of the Mono debate specifically, politics is serving a very important role. It is keeping many people wary of the technology, which is exactly how they should feel. .NET is not an open standard implemented among a group of peers. There is no governing architecture body, no official licensing mechanism, and no explicit patent grants. There is not even the pretense of these things, as in Sun's Java project. Microsoft controls the direction of .NET and Microsoft alone. Anyone else who implements it is prepetually stuck following Microsoft's lead, with no possibility of offering input into the design of the system which they are implementing. Offering it as a compatibility project, like WINE, Samba, etc, is one thing. Incorporating it is a first-class API in your system is something else entirely.
It is also a memory hog, not amenable to dynamic languages, and architecturally inferior, in many ways, to GNOME's current cross-language interoperation mechanism.
At the end of the day, there are lots of technical, political, and strategic reasons to dislike Mono, and it is a very good thing that people are wary of its inclusion in GNOME.
Edited 2006-07-23 22:43
+1, although I don't agree with your negative outlook on Mono... There are valid concerns that deserve to be debated, but it's really unfair to repeat the "Mono has to follow Microsoft's lead" argument all over again. That's simply not true and since Mono is free software, it doesn't even matter what Novell's long-term plans are for it. If Mono is the right technology for a job, then it has to be evaluated on this basis alone. Compatibility to .NET is totally irrelevant concerning the question of Mono-inclusion for GNOME.
Mono, as a matter of practicality, must retain compatibility with .NET. That's what developers will expect, as long as Mono purports to be an implementation of .NET.
Retaining compatibility with someone else's API is one thing if that API is governed by a formal board, and there is some process for having a say in the future of the design. It's quite another thing if that API is wholly-controlled by a hostile external entity.
"The right technology for the job" is almost never a satisfactory critereon in real life. Last week, I was writing some code at work to generate a KML (Google Maps input) file from some data. "The right technology for the job" at the time was Lisp --- I'm very comfortable with that language for working with textual data and XML. What did I write it in? Matlab. Why? Because all our other data processing code is in Matlab. It was a decision that was entirely motivated by politics, at the expense of technical considerations, but most people would agree it was the right decision to make.
No, only those who actually use Mono because of its compatibility with .NET will expect this compatibility to remain. Developers of pure GNOME applications will not. If .NET compatibility has to be broken without the consent of Novell at some point, then obviously a rename (aka fork) might be in order, but that's about as bad as it can get with regards to this particular problem. Certainly that doesn't justify using it as an argument against adopting it.
As long as C# purports to be C#, the expectation of compatiility will remain. What happens when Microsoft introduces features XXX in ECMA C# version YYY? Mono wil either mplement that feature, or remain incompatible with the "standard'. This is of course the case for any standard, but at least in other standards, there is some mechanism for community input into the evolution of the standard. There are no such provisions in C#.''
That's exactly why the Java Community Process, as limited as it is, was introduced. Nobody wants to implement a giant platform without some guarantees that they'll have some input into its design in the future. There are no such provisions in the world of .NET.
Absolutely right Rainer.
The reason Mono is a controversial project has very little to do with being "microsoft technology", and everything to do with the legal landmines associated with using "microsoft technology".
Nobody wants to get cozy with Mono until we are absolutely sure its not going to bite us in the ass later. Especially when there are other perfectly suitable, patent-free RAD languages.
Politics are unavoidable, but in OSS we reduce our reliance on politics and consensus by means of a simple and effective principle: he who codes decides.
As Thom contends, users don't care how their favorite applications are developed, they just care that they work well. Developers, however, care about such things, and he who codes decides.
For the most part, at least. In the free software world, if a developer writes poor software, users and other developers will give up on it pretty quickly. There are usually myriad alternatives.
People can argue the technical merits of Mono until their fingertips are bruised and bloody, but in the end, the applications speak for themselves. Many users like applications such as F-Spot, Banshee, and Beagle. Could they be implemented in another language? Sure. But the people who coded it decided on Mono.
Because free software is free, and because there is a wide variety of distributions to choose from, the need for consensus is further reduced. However, there is one area where we do need consensus, an area where we currently have none:
In what sense is Mono currently infringing on Microsoft patents, and under which circumstances could the Mono Project be compelled to infringe Microsoft patents in order to continue to fulfill the goals of the project?
With the amount of money Novel et al is pouring into Mono, you'd think that they'd have smart people working on this, ones who won't give the IANAL response. You'd also think they'd share these conclusions with the GNOME development community.
IMHO, an official project leader for the GNOME Project would be useless in mediating this particular decision, because he/she would have no solid evidence to go on. The decision, for the time being, would have to be no. Hopefully, that would cause Novell to snap out of its coma and defend its baby.
People can argue the technical merits of Mono until their fingertips are bruised and bloody, but in the end, the applications speak for themselves. Many users like applications such as F-Spot, Banshee, and Beagle. Could they be implemented in another language? Sure. But the people who coded it decided on Mono.
Novell has their fingers in all of those projects, so it's not really an unbiased consideration. The people who coded them may have decided on mono, but it wasn't necessarily on merit. Beagle is worth singling out, along with Novell's zen-manager and ifolder, because I think from what I've both heard and experienced myself, mono is not appropriate for services or core system components. Beagle is an example of a component that probably would have been better off using a different language.
In what sense is Mono currently infringing on Microsoft patents, and under which circumstances could the Mono Project be compelled to infringe Microsoft patents in order to continue to fulfill the goals of the project?
From the mono project licensing FAQ (http://www.mono-project.com/FAQ:_Licensing):
"The controversial elements are the ASP.NET, ADO.NET and Windows.Forms subsets. Those are convenient for people who need full compatibility with the Windows platform, but are not required for the open source Mono platform, nor integration with today's Mono's rich support of Linux.
The Mono strategy for dealing with these technologies is as follows: (1) work around the patent by using a different implementation technique that retains the API, but changes the mechanism; if that is not possible, we would (2) remove the pieces of code that were covered by those patents, and also (3) find prior art that would render the patent useless.
Not providing a patented capability would weaken the interoperability, but it would still provide the free software / open source software community with good development tools, which is the primary reason for developing Mono.
The patents do not apply in countries where software patents are not allowed."
Basically, patents exist, best to find a way to work around them. Don't get me wrong, I think software patents are ridiculous and outside of the US they would be hard to enforce, but they exist none the less. So you can use mono to port your windows apps, just don't expect to use the windows library APIs.
With the amount of money Novel et al is pouring into Mono, you'd think that they'd have smart people working on this, ones who won't give the IANAL response. You'd also think they'd share these conclusions with the GNOME development community.
Novell is mostly banking on a MAD strategy against MS via the Open Invention Network. Novell purchased some patents from the bankrupt Commerce One that relate to web services, and are basically threatening to use them to sue Microsoft on unrelated patent infringement if they try to sue for mono-based patent infringement. The underlying implication there is that mono use is *not* free from patent infringment, just that MS has something to lose if they attempt to enforce their patents. Might seem like a vague distinction, but for public companies or government institutions it's an issue.
Novell does offer IP indemnification to customers that maintain enterprise licenses, but I'm not entirely sure if mono is covered by that indemnification. Their website doesn't specify, and a buddy of mine that works at Novell couldn't get a straight answer internally.
But even if Novell indemnifies their paying customers, that doesn't help the community.
Politics are unavoidable, but in OSS we reduce our reliance on politics and consensus by means of a simple and effective principle: he who codes decides.
So Hans gets to decide whether Reiser4 goes into the Linux kernel tree or not?
"He who codes decides" becomes political the instant a second person starts working on a similar but different approach to a problem for a given OSS package.
Rayiner,
For the most part i agree with your comments about politics. But would you care to explain to me, and others, what "anyone else who implements it is prepetually stuck following Microsoft's lead, with no possibility of offering input into the design of the system which they are implementing." has to do with GTK#, which developed for Linux/GNOME and is completely irrelevant to the .Net/microsoft compatibility issues ?
Where exactly does Microsoft dictate, or conversely how exactly are mono developers playing catch-up to Microsoft-in regard to GTK# ?
What exactly is preventing mono developers from freely developing an API which targets the GNOME API(GTK, glib, dbus etc.) ?
Whereas one can make such an argument in regards to the Microsoft specif portions of mono- these issues are irrelevant as pertains to the GNOME desktop and GTK#.
Conflating these issues is tantamount to re-evoking a perpetual red-herring. the patent questions reguarding mono are irrelevant in the question about GTK# and the GNOME desktop- If Microsoft sued tommorow-GTK# and all of the POSIX specific portions of mono would still be here. None of the parts of mono which do pertain to the GNOME desktop are a) subject to patent concerns b) subject to whims and design decisions of Microsoft.
Rayiner-you should know better than to conflate issues and perpetuate misleading, in that such is irrelevant to the topic at hand, information.
I honestly didn't realize that Bill was telling Miguel how to write GTK#-or that Microsoft was dictaing the future of GNOME....How silly.
Mono/GTK# also presents a fantastic set of libraries to work with, is open-ended due to the fact that users can utilize it with a multitute of languages(Boo, Java, etc.), and it is archictectually superior to GNOME's current cross language interoperaton mechnamis.
At the end of the day, there are lots of technical, political, and strategic reasons to like Mono, and it is a very good thing that people are considering its inclusion in GNOME.
The only issue with regards to Mono that I personally have are the licensing issues. But Xorg has the same license and it has not proven particularly problemtic in the context of the free desktop environment...
Right now the leaders are the companies that support GNOME. They take all decissions, like using Mono.
Oh, please. Nobody pays you for your comments here, so why do you feel compelled to comment when you haven't got nothing intelligent to say?
The whole Mono discussion originated because Alex Graveley proposed Tomboy, which uses Mono: FYI Alex Graveley is not related to Mono developers or Novell, he works for VMware.
I don't understand your point of view, Thom.
Of course you as a normal user don't mind about this kind of debates: it's _intended_ to be a discussion within the developers, that of course care a lot about the Mono issue.
Also, i use Gnome as my only desktop (both at work and at home) and I really don't need any Mono application right now
"Forget your own needs, and look at normal users. They need decent photo management, decent music app, and decent instant search (and no, Beagle is not as broken anymore as it used to be)."
Photo management: digiKam
Decen music app: Amarok
Decent instant search: ?
Run a KDE desktop, as Torvalds suggested. It's more powerfull, coded in C++ (thus compiled, not interpreted) and has most usefull applications. Search is missing (kat crashes).
If Linux had a COM layer like Windows does we wouldn't have to have all of these binding layers for each language. A COM implementation already exists for Linux, XPCOM, but nobody is using it except for Mozilla.
XPCOM already can mix Java, C, C++, Javascript and Python. I think there may be support for Ruby and Perl floating around too. It's not very hard to add a new language.
XPCOM can be built standalone from Mozilla CVS so you aren't forced to drag along the browser.
COM is a good choice for OS services because it can be deterministic and has relatively low overhead.
But... .NET was originally called "COM99" within microsoft, and really represents the future of COM. COM is not easy to code for and it's hard to make a good build system with it.
The linux DE world already has a COM-like layer: Qt's MOC system seems very much like COM to me.
The linux DE world already has a COM-like layer: Qt's MOC system seems very much like COM to me.
And Gnome has GObject. The problem here is that we are missing the C in COM. Each environment is building their own COM. XPCOM is a good choice simply because it is neither QT nor Gnome and most of us are using Mozilla. Picking a netural solution will stop the arguments.
XPCOM also works on Mac, Solaris and Windows.
I am a "regular" user. I use many different distributions, both at home and at work, but I always use gnome. I like it better than KDE.
As for mono apps, I have never used most of the ones you talk about. I tried beagle when it first came out. Now it's in the list of "things I turn off on install". It always seemed to be taking up system resources when I needed them. As for the others, I can't say that I've used them. Maybe I'll check them out.
Nobody is keeping people from developing applications in whatever language they want. If people want to write in high level languages, let them. If the apps are any good I'll use them.
I think of java/.net/c#/mono and I think slow. I almost always have trouble when running java apps because there are like 100 versions of java and they don't all play nicely. Now these things may be getting better, but should we make our entire windowing environment depend on these languages? Plus, each language we add as a dependency adds what, 100MB? worth of shared libraries? Should we make it so gnome only fits on a DVD? There has to be some reason that all major operating systems (windows,unix,beos,macos) are wrtten in c/c++.
Now I admit I do feel a bit nervous about Microsoft pulling the rug out from under mono, and I do think that's a good reason not to make the use of gnome dependant on it.
Well, i've never used a single one of those apps and find GNOME to be reasonably useful (though KDE suits my needs better).
What youre really saying is that the only decent GNOME implementation is the one in SuSE/Novell Linux, and everyone should just STFU and do it Novells way.
But thats not really what open source, including GNOME - is about - open source is a development methodology - by developers, for developers. its got no real implicit advantage for end users, and I guess thats why youre complaining.
So if you dont like open source, and the way open source development occurs, then go spend your time with a customer focussed commercial solution, if thats what you want.
This is the way it is supposed to work - The source for all this stuff is available, and it is up to distribution vendors to package it up and integrate it to meet their customers needs.
There is no requirement for the GNOME foundation to choose a single option, and especially one that is so obviously prone to patent attacks by Microsoft.
I, personally, would prefer to see anything but Mono in GNOME, and yeah, mostly because its a MS technology and I dont trust them. I imagine a lot of others have the same trust issues with MS as I do.
Regardless of your or my personal opinions on the matter, the issues will be worked out by the developers, in a way that favours the developers, on the developers schedule. In the interim, the users will just have to wait.
If Novell can integrate Mono and make 'indispensable' applications available to you, whats the problem? Get on with using your PC like you say you want to, and stop posting this stuff.








