Politicians. They are a certain type of people. I do not like them. Many do not like them. I think if there’s one thing all of man has in common, whether he be Christian or Muslim, black or white, young or old, American or European, is a dislike of politicians. But then– why on earth do we allow politics to complicate software? Note: Sunday Eve Column.You only have to look at why my country’s government fell a few weeks ago to see why I do not like politicians; they never seem to truly care about what we, the ordinary folk, think. We as people are simply irrelevant until election day. 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?”, instead of “what do the people want/does the country need?”. I think I speak for many when I say that it always feels as if politicians are completely out of touch with the normal people.
And that is exactly how I feel about the debate that this week reared its ugly head again: should Mono bindings be included in the vanilla GNOME package? Or, for layman, should Mono become part of GNOME?
Let me clearly state that I am not a developer, nor do I care about philosophical and ideological nonsense when it comes to software. All I want from my computer, is that it works. I find the development language used to write my favourite applications to be rather unimportant when I’m busy using my applications. When I fire up F-Spot, do I care about it being written using Mono? Do I care that a Mono-powered back-end is powering SLED 10 awesome search functionality? Or better yet, does the average user care about any of the above?
I am fairly confident when I say “no”. What users like me want, is a desktop that works, does its job well, and if it looks good while doing it, that’s nice. “Today I’m going to buy The New York Times, then I’m going to sit at that little corner shop and have a green tea and a muffin and then I’m going to look for a sweater set. This afternoon if I’m so obligated I’m going to collect someone’s soul before they die and if I look really pretty while I’m doing it, well, then good for me.”
But I digress. The Mono/GNOME debate. What bothers me most about this debate is, well, that the debate even exists at all. Let’s face it, boys and girls, the applications that currently make GNOME a usable home desktop are Mono-based. What is GNOME without F-Spot? Without Banshee? Without iFolder? And, most importantly, without Beagle? If I were a normal user, without all the knowledge (no arrogance intended, this time) I have now, I’d be amazed to hear the technology that powers these applications is not part of the GNOME Desktop/Development Environment!
I think there are two main causes behind this debate. First are Mono’s origins. Mono is based on Microsoft technology and standards, and hence, many automatically dislike it; whether Mono itself is good or not is irrelevant to those people. The second, more important reason is a complete and utter lack of leadership in the GNOME community. 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.
And it shows. The discussion on d-d-l got completely out of hand, drifting away from the actual subject matter towards silly discussions over GNOME’s “real purpose”, as Eugenia pointed out on her weblog. After all the dust settled a little bit, the discussion started all over again under a different name. And even before that dust had settled, Jeff Waugh summed all the previous dust up, with good intentions, only to start the whole thing all over again. Did it work? Has a decision been made? Are we any further than we were two weeks ago?
No.
Let me give you a little sneak peek behind the scenes of OSNews. We are a fairly small project, consisting basically out of four people: Adam, David, Eugenia, and me. You’d expect all of us to reach agreement fairly easily, right?
Well, not really. To the outside world, of course, it appears we all agree all the time. All you readers get to see are the outcomes of our discussions behind the scenes on our internal mailing lists– you never get to see the discussions themselves. And to be honest, that is for the better. We disagree more often than you think, and over important matters, we can get carried away; however, instead of GNOME, we actually have a ‘leader’ who has the final say in the important matters: David. He, in the end, makes the final call.
That is what GNOME needs too: an elected someone or team who makes the final decisions in important matters, after weighing the pros and cons as discussed on the various mailing lists. That is the only way a large project like GNOME can be run effectively. Someone who is above the politics, someone who does not care about the origins of a project, someone who is not related to any of the three big companies sponsoring GNOME. Now, the developers behind GNOME discussing this issue, feel a lot like those politicians to me. They appear out of touch with what the ordinary user wants.
And that is kind of sad actually.
If you would like to see your thoughts or experiences with technology published, please consider writing an article for OSNews.
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.
QT was not a dubious free license at the time, it just wasn’t a free license.
Not sure about the timing, but wasn’t Qt available under the Qpl? which isn’t that bad a lincense, it’s GPL compattible.
GNOME is supposed to epitomize the ideals of free software, it is after all the official GNU/Linux desktop
where is this written exactly?
where is this written exactly?
http://en.wikipedia.org/wiki/GNOME
GNOME is the official desktop of the GNU Project…
http://www.gnome.org/about/
GNOME is Free Software and part of the GNU project…
So, its part of GNU, but GNU is not unix as the saying goes and linux is not GNU, so its not the offical desktop of GNU/Linux at all, just of GNU.
On the linux side, that project’s “owner” seems to have a different take on the preffered desktop.
I think your political comments are completely useless and stupid
Thom, maybe you should have a separate icon for your Sunday Eve opinion piece.
On a similar line, will we ever see the Windows/Explorer rant from your series of “What I hate about X”? I, at least, found those interesting.
“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”.
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 – 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++).
I did try it out a couple weeks. It didn’t index my Microsoft Word files, my music files, or instant message logs, my applications, or anything else that I actively really use it for. It did index text files and there contents…
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 …
Yes.. so you actualy propose to give up democracy and erect an omiscient and omnipotent leader…
Did you even read? I said ELECTED. Do I need to spell it out?
Yes.. so you actualy propose to give up democracy and erect an omiscient and omnipotent leader…
Did you even read? I said ELECTED. Do I need to spell it out?
Yup,thats what I ment. Its just a misspeling
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.
Excellent examples, there.
Stalin: his regime outlived him by nigh on 45 years. Third place in this list, but hardly a ‘fail’.
Mao: his regime has outlived him and persists to this very day.
Castro: …um… you do know he’s still in charge, right?
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.
If we ever aren’t satisfied with the direction C# is going, there is nobody stopping us from calling our language flavour G# instead (or switch to Boo). There simply isn’t any such issue for the GNOME project. The situation with Java is completely different, since it is not free software.
Well said and dead on accurate. You got a +1 outta me.
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.
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).
Another troll, just what we were missing. Get a life.
try strigi for search.
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.
I have my right to express my opinion. I haven’t read yet that Linus is a troll for saying KDE should be the desktop choice and the environment developers should develop for. It currently has the best framework and applications. There is no debate about mono or not mono, it’s no controlled/influenced by companies and doesn’t have any lack of leadership. What’s wrong with telling the truth? That you don’t like it? Well, that’s how life works.
Again you? It’s the truth. Novell, Red Hat, IBM, SUN, what else am I forgetting?
So what GNOME includes MONO, i think it would do wonders to advance the desktop as a whole, and when it comes to the IP argument, i think its plain silly…and people cant help but bring up KDe in a GNOME article which isnt much better because KDE utilizes Trolltech’s QT…not a great deal different.
O theres a difference. Qt is licensed under the GPL and is a freely available and theres no reason to suspect Trolltech being a threat compared to Microsoft.
>> “[Politicians] 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?”, instead of “what do the people want/does the country need?””
Well, of course. People seldom pay attention to what politicians do unless it affects them personally. Democracy is premised on the existence of an informed and engaged population. But, today, most voters don’t see themselves as participants in government with a responsibility to make informed decisions. They see government as an entity that provides goods and services and themselves as its customers. Democracy can’t survive under those circumstance. Such people will welcome a tyranny that meets their needs and keeps them happy rather than endure the vagaries of a democracy.
As for Gnome and Mono, well… that’s the reason I walked away from open source. Too much inane patter and conflict about issues that users have no reason to care about. Whether or not Gnome includes Mono is about as important to users as the kind of metal used to make the heating elements in their toasters. As long as it gets hot enough, who cares?
“Democracy is premised on the existence of an informed and engaged population. But, today, most voters don’t see themselves as participants in government with a responsibility to make informed decisions.”
Indeed. In ancient Greece, ‘idiot’ meant a person who cared not for politics. Today one could mostly say that the meaning has been reveresed as ‘politicians are idiots’ is a commen phrase (although it tends to be true if one by ‘politician’ referrs to the career politicians i.e. the majority).
“They see government as an entity that provides goods and services and themselves as its customers. Democracy can’t survive under those circumstance. Such people will welcome a tyranny that meets their needs and keeps them happy rather than endure the vagaries of a democracy.”
Also true. Democracy as it is today has lost its appeal to a great many. People tend to get vocal about the rights a democracy implies, but they also tend to be very poor to use said rights.
I have been reading everyones posts regarding Mono. Fear of Microsoft pulling the plug on the C# API’s is mentioned or alluded to in a lot of them. I am not a regular user of Gnome or KDE (I don’t have machines capable of running them), but I have seen them. Back to the fear factor. I was under the impression that the C# specification was an ECMA standard?
http://www.ecma-international.org/publications/standards/Ecma-334.h…
Isn’t this the same group that manages JavaScript?
http://www.ecma-international.org/publications/standards/Ecma-262.h…
Does Microsoft push Jscript on everyone? I just wanted to put out that Microsoft is not the only player with the C# language. If I am wrong, please post with documentation to support that Microsoft and Microsoft alone controls the C# spec.
By the way Thom, I really enjoy your articles!
Josh
First, that particular version of C# is an ECMA spec, and just C#, not .NET as a platform. Second, Microsoft does indeed control the C# spec. Ask yourself: who has the power to decide what’s in C# 3.0? At least with Java, Sun has some mechanism (JSRs) for allowing outside input into the design of the language. Microsoft makes no such provisions for C#.
Because Mono is a copy cat on a shaky ground
I’m asking “Why?” Why use Mono at all? What advantage does it confer? What can it do that any other cross-platform language/framework can’t do? What’s so wrong with Ruby, Python, C++, etc?
I get the sinking sensation it’s just a lot of engineers reinventing the wheel for the sake of intellectual curiosity.
I had begun to enjoy the fact that the Linux/*BSD desktop community had begun to standardize on modular, low-level components to handle repetitive functionality. Innovative libraries like GTK2, Gstreamer, HAL, DBUS, etc. now handle the majority of the CPU-intensive/platform-specific activities that would otherwise render programs written in Ruby or Python unresponsive.
So again I ask, why should we commit to a platform that has no legal guarantee of being there in the future when we have legal, open source, community-driven options readily available? What entity can legally threaten to “take our Python away”? Or Ruby, C++, C, Haskell? What’s stopping anybody from writing F-Spot or Banshee in Python?
>’m asking “Why?” Why use Mono at all? What advantage >does it confer? What can it do that any other >cross-platform language/framework can’t do? What’s so >wrong with Ruby, Python, C++, etc?
It’s not whats WRONG with the other languages, its more like whats RIGHT with Mono/C#. It is a highly modern framework with tons of libraries for doing most common tasks. It cuts development time over C++ and when coded right it is almost just as fast.
and to that guy above who has been modded down for trolling about KDE and C++, if you did ANY research you would know that Mono/.NET apps are compiled into binary code before running and NOT interpreted like Java is before the JiT compiler kicks in.
Whats wrong with Ruby and Python? well they are interpreted languages so they are slower than Mono for one thing.
Edited 2006-07-23 23:58
> It’s not whats WRONG with the other languages, its more like whats RIGHT with Mono/C#
I couldn’t agree more. Each language has pros and cons. Here’s what I
think are main cons of languages mentioned by monodeldiablo (the list
is deliberately biased):
C: No object oriented features.
C/C++: No native garbage collection. No binary portability.
Haskell: Last time I checked, object-oriented programming was a
nightmare. Library coverage is small (in comparison with C#/Java).
Python: No static typing (compile-time errors become runtime-errors),
no native way to specify a Java/C#-like interface. Both make writing
big modular apps more difficult than in Java/C#.
I hope this shows that C# might be the right tool for some projects.
If not, just take a look at the LINQ project for C# 3.0:
http://channel9.msdn.com/showpost.aspx?postid=114680
Ruby and Python also have tons of libraries for doing most common tasks. They also cut development time over C++.
Furthermore, as I said earlier, most core modules for CPU-intensive computation are actually written in C for Ruby/Python/C++/etc. The speed/capacity argument is less of an issue than we are often led to believe.
However, that still leaves speed as a factor, albeit a small one. Java has an even more impressive set of libraries, a similar design and is faster than C#/Mono (although both are hell on memory).
So why should the GNOME community hitch its wagon to a technology whose freedom is unclear when plenty of OSS solutions already exist and are very active? More importantly, why should the GNOME community choose to incorporate a platform it has no say in the future direction of?
I don’t mean to be contentious; I just don’t see the logic in continuing to divert resources, time and interest in a platform that’s not clearly “our’s”.
and to that guy above who has been modded down for trolling about KDE and C++, if you did ANY research you would know that Mono/.NET apps are compiled into binary code before running and NOT interpreted like Java is before the JiT compiler kicks in.
Where did you find that information?
http://www.mono-project.com/FAQ:_General
The FAQ on the Mono website mentions that Mono has a CLI (Common Language Infrastructure) virtual machine with a class loader, JiT compiler and garbage collector (which as of now is still the conservative Boehmgc, if I’m not mistaken, but someone is working on a generational garbage collector). It also includes a class library (I seriously doubt that its current libraries are as extensive as those for for example Ruby, Python and Java). And it includes a C# compiler which targets the Common Language Runtime, thus a compiler which compiles to bytecode for the CLI.
Now, I don’t know much about Mono, I never used it myself, but I did read about it at times. I believe there is an option to save the JiT-compiled classes in a file and that the runtime would load these files by preference, but that, by default, everything is still in bytecode and JiTted just like Java.
This changed? Or you read something else?
Or what do you mean with binary code? I think Java and MonoC# have the same mechanism with a compiler from source to bytecode and then a JIT-compiler in the runtime. Ruby currently uses an interpreter, but a byte code compiler and accompanying virtual machine is in the works. I don’t know about Python.
The debate is a strong indication that, without closed source software or imitation, Open Source is just a three leg dog – it could not build its own ecosystem.
Perception is what all this is about. Mono may be 100% legally safe, but in the end it does not matter. As long as people have doubts, there’ll be debates and Mono will not be completely accepted by the free software community.
Need an example? Some people still today think KDE is threatened by its using of Qt, even though it’s perfectly safe now for FOSS development and it has been for a long time. Again, a matter of perception.
Thom is very right in something: someone has to make the final call or this will go on forever. Be it ditching Mono completely, or saying goodbye to opposing Gnome developers, this has to end if Gnome wants a future.
The problem with comparing Gnome development to running OSNews is that one’s an open process and the other is not.
It is in the nature of open source that its debates be held in public forums.
Besides, if you think the Gnome lists are “bad”, you should spend some time sifting through LKML.
Wow. These are the same EXACT arguments that were being bitched over 2 years ago! I knew they weren’t going to cease, and here we are, 2 years down the road, and no one can come to a conclusion.
For those 2 years, think if all those Mono engineers could have been helping Python, or the new Perl (which is looking very fascinating). Or, God forbid, just gotten off this insane Linux desktop boatride/mishmash and helped Haiku.
Really, why should Miguel care though? He got the morons at Novell to buy his tiny company, and has had a paying job for 2 more years. He’s still totally naive to think MS will allow Mono to reach a critical mass without them suing his pants off. That is MS’s modus operandi, and their lawyers are just waiting to pounce on Mono. That’s why people are scared, because they remember the 90’s, and how ruthless Microsoft is.
And it doesn’t matter if you say MS can’t sue Mono for whatever inane reason. MS has hundreds of lawyers making $250,000 a year who can easily think of absurd reasons for any kind of lawsuit, and then Gnome is screwed.
Every time I read the news I read about how Microsoft is getting sued by this company or that governmental agency. I can only think of two cases that I have read about in which Microsoft was the plaintiff and they were both trademark issues: they sued Lindows due to its inane name, and they threatened Mike Rowe for his site MikeRoweSoft (but gave him an XBOX in return).
Can you point out an instance in which Microsoft has actually sued an open source project or anyone else for patent infringement? It should be noted the SCO is not Microsoft and in the case of something like C# there is no third-party they would sue through.
This debate is completely useless.
What should be the next language for Gnome development? There’s just one single possibility: C++. That’s not debatable.
Microsoft themselves realized that in was not the right time yet to pick up an interpreted language for OS development. Google it up. They clearly stated it. That’s one of the reason why Vista was even more delayed: they decided (in 2004, 2005?) to rewrite some of the core stuff in C++. And guess what, C#.NET is the fastest interpreted language when it comes to GUI development. A WinForms GUI is really fast. C#.NET itself is fast. But not _fast enough_ to replace traditional C++/MFC. Is this so hard to understand? Microsoft themselves stepped back. So why one would use a slower implementation and start using it in major projects? That’s non-sense.
See. KDE is based on QT. QT = C++.
Most commercial apps on Windows are based on MFC. MFC = C++.
If Apple wouldn’t have ObjC, they would go C++.
Why C++? Because it’s the de facto OO language. And it’s compiled to machine code. Compilers are optimized alot. Etc. Like it or not.
It’s not like there are many choices out there. Java and C# cannot be used for the reasons stated above. Python cannot be used for the same reasons. What’s next? Nothing.
I hate to say this but there are too many “useless” discussions. Sometimes it’s good to come back to reality and realize what is the real problem. Microsoft got it right. Instead of pushing C# eyes-closed, they told the people that someday it will be the de facto language for the Windows platform but for now, C++/MFC developers are still high on the priority list. Anyway, that’s why they came out with a new version of C++.NET. They knew that C++ developers wouldn’t switch to C# anytime soon and that the first version of the managed extensions for C++ werent good enough to make people look at it.
Thus said: Go C++. You simply cannot be wrong.
C++ is probably the worst possible direction to go. It’s an absolutely painful language to bind to from real programming languages.
GNOME’s current mechanism is actually a pretty decent one. Implement the core APIs in low-level C, allow for a rich binding layer, and allow people to write apps in whatever language they want.
C++ is probably the worst possible direction to go. It’s an absolutely painful language to bind to from real programming languages.
GNOME’s current mechanism is actually a pretty decent one. Implement the core APIs in low-level C, allow for a rich binding layer, and allow people to write apps in whatever language they want.
Of course, the core of Gnome could remain in C. How do you think Windows works? It got a C API (the Win32 API) and a thin layer called MFC to make the whole system a bit more object oriented. Not completely object oriented by the way. for those who used MFC 😉
This is not how Windows works anymore. Starting with Avalon, the .NET GUI toolkit is no longer based on top of Win32’s controls.
This is not how Windows works anymore. Starting with Avalon, the .NET GUI toolkit is no longer based on top of Win32’s controls.
Some of it. Almost everything prior .NET 3.0 just wrap Win32 APIs.
Actually, the main advantage of C++ over .NET is its determinism. You have to deal with the memory-management yourself (or use smart pointers and RAII to do it for you), but you are guaranteed not to get bitten by a GC at bad times and you can deal with OOM situations if you code carefully.
C++ is a great idea, in my opinion. Rayiner’s complaint about bindings can be pretty solidly solved by a COM-like technology. COM is a great technology for a lower-level public layer of a system because it can be accomodated by most languages, it’s deterministic, and it is regular enough to be auto-parsed to form language bindings.
No. Why would they rewrite millions of lines of C in C++, or worse, taint millions of lines of C with C++ additions?
Gnome is a C project. The core is written in C now, and it’s probably going to be written in C for a long time to come.
So why would you add on a second systems programming language?
Besides that, TMK, Windows is a mix of C and C++.
The second problem is that you believe their GUI’s are fast because they’re using C++ bindings.. No. No one is talking about writing GUI’s in C# (although for all I know Mono’s Winforms implementation is in C#, I doubt many people care at this point, they just want something working). Gtk, C; QT, C++… The binding cost isn’t much to speak of. Users couldn’t notice the binding costs 5 years ago, they certainly can’t tell now!
The reason Win apps are so stinking fast is because their GUI toolkit is so stinking simple. I’d consider the implementation being good to be a given, especially from Microsoft. But guess what, people don’t care their either. Load up xchat, or gaim, or some other Gtk program and ask people if it feels slower…
There’s no reason to add C++ support. They don’t need a second systems programming language in Gnome. The idea in supporting one high level language is to concentrate developers on it.
Thom actually makes a great point that because so much is already on Mono (Beagle et al), so much that is so popular, you might as well choose Mono.
Oh well though, I doubt there are more than 2 people developing Gnome who’d even think to entertain validity for your proposition.
Haskell does not need to be object orientated. It is strict functional language which has a lot of benefits over Java, C#, C++ or any other OO language.
In my opinion Haskell would not be a bad choice apart from the lack of developers. It compiles to native code, it creates less buggy code and it could seem faster to the user due to lazy evaluation. The biggest problem with it is that it’s so different to most languages (imperative langs).
My opinion of Gnome is that it should continue with C being the base. The reason for this is it is without any doubt the easiest language to bind with. On a video of Guadec I heard (I can’t remember who said it) — KDE has C++ but they have to stick with it.
Gnome on the other hand has many great bindings. Look at all the cool gnome applications, there are some in C, mono, python, perl and ruby.
actually, KDE doesn’t have to stick with anything. They have excellent bindings, autogenerated – so its not a hassle to maintain them. There are even OFFICIAL Java bindings by Trolltech, for Qt 4.2 and higher.
KDE supports python, ruby, perl, java, C# and more.
http://developer.kde.org/language-bindings/
Why C++? Because it’s the de facto OO language. And it’s compiled to machine code. Compilers are optimized alot. Etc. Like it or not.
If it is so optimized, why is every c++ app I use seems dog slow. It would have to be the most horrible language to port between systems. As much as I hate to say it, C# is a huge improvement over C++. Also I think the stats for the last few years show Java having a larger developer base than C++.
well, then, you tried the wrong ones, I guess. For example, Amarok is the fastest music player you’ll find – try to let it index and/or load 20.000 songs, and compare its loading time with other music players (if they manage to index them at all). Generally speaking, KDE is rather fast – and its slowness comes mostly from the underlying infrastructure (eg fontconfig, drivers) instead of C++.
well, then, you tried the wrong ones, I guess. For example, Amarok is the fastest music player you’ll find – try to let it index and/or load 20.000 songs, and compare its loading time with other music players (if they manage to index them at all). Generally speaking, KDE is rather fast – and its slowness comes mostly from the underlying infrastructure (eg fontconfig, drivers) instead of C++.
I would prefer a music player the play the music at the same speed it was produced at Indexing, you are probably getting confused with algorithms. I would not call KDE that fast. It’s speed generally relies on access to the underlying hardware rather than what it was programed in. Have you ever tried to compile it with anything other than g++?
I would prefer a music player the play the music at the same speed it was produced at
Yer. I really wish the God’s gift called GStreamer would do that, which is why I just use Xine ;-).
I would not call KDE that fast. It’s speed generally relies on access to the underlying hardware rather than what it was programed in.
Pardon? Not following you there at all. If the speed of Gnome, KDE or anything relied on ‘access to the underlying hardware‘ then everything would work at pretty much the same speed. It obviously isn’t.
Look at what he’s said. KDE and KDE applications like Amarok handle large data structures like song lists very well, and its speed is a testament to it. Look at the way Kontact/KMail handles large amounts of e-mail and e-mail accounts in an acceptable fashion.
Because C++ is a more complex language, as OO is a more complex paradigm, than C/the imperative/structured paradigm. It is therefore less well understood, thus more easily misused, which in turn leads to slower apps. With that said, would you care to elaborate a bit? I have used Windows XP extensively (which I don’t consider slow), BeOS (which nobody considers slow), Sibelius, Opera, Logic Audio (the “fastest” sequencer there is), and a lot of other apps written in C++. And C++ does not make use of a (native to the core implementation) gc or VM, so what’s inherently “slow” about the language?
but why can’t we just keep things simple. mono as i see it is an unstable and useless piece of technology. lets move on please to something that actually works on all distro’s w/ no fuss…
I’m a programmer, and have used mono extensively for various projects. Mono is not ready to be integrated in to the GNOME project.
Mono is very incomplete, and if you grep for “Not Implemented” you’ll see many exception throwing statements.
Mono is meant to help windows programmers port over applications to Linux. Even though this project is great, I wouldn’t consider the mono project ready for any type of integration. Mono is not portable to any other OS except Windows, Linux, MacOSX, and FreeBSD(runs but unstable).
If a person is truely wanting to create C# code, I highly recommend the DotGNU Portable .NET project, and help contribute.
My article I did wrote and submitted to the gnome-devel mailing list is listed below
http://tsumelabs.com/articles/GNOME_and_the_new
Miguel has stated to me over IRC Mono can’t possibly be included in GNOME, because there is a list of show stoppers.
Anyone wanting to read further on the details should read the mailing list. I’ve included links on my article webpage for those who are curious about the situation.
I listed in my article a few other languages. Please read if you truely are intrested in learning about the Mono GNOME situation.
Thanks for reading, and have a nice day.
My article I did wrote and submitted to the gnome-devel mailing list is listed below