Not much, as you'll see. Just a coherent plan... and strong leadership!
Although I have some doubts that XFCE is "so very much lighter" than GNOME (GNOME 2.20 doesn't take too much memory if you don't start all kind of crap), it is still lighter, and in a few years there will be less and less antiquated computers who require extra-light window managers (Fluxbox, Openbox, Blackbox, WindowMaker, IceWM).
So far, the applications, tools, accessories and applets that come with XFCE are not contaminated with the Mono virus, and hopefully this won't change very soon. (Or at least, I hope so.) XFCE is reasonably mature, and constantly improving, so it has all the chances to become the mid-weighted Desktop Environment of choice pretty soon!
To make XFCE be #1 (in "market share", if you want to put it this way), it doesn't have to look like Vista, nor to look like OS X Leopard; it's good that it's that configurable, but it's also good that it's simple by default.
What is XFCE needing to reach the Nirvana? Here's the way I see things.

INDEPENDENCE:
XFCE should continue to stay away of Mono.
UPDATE: For most people, it's because of the possible patent threats, but in my case it's even simpler: I don't want .EXE and .DLL files on my Linux box! Mono mimics .NET so well that it builds files with the EXE and DLL extensions, albeit Mono is not developed by Microsoft! Adding the possibility of having Mono on XFCE (e.g. Gtk#) for the development of some small tool (think of Tomboy) would soon transform into the customary practice of shipping XFCE with that small Mono tool by default. Why should I have EXE and DLL files in Linux... by default?! I don't want to remove them: I don't want them to be there in the first place!

COOPERATION:
XFCE should continue to cooperate with the Linux distros that ship it, in order to ensure a reasonable level of bugginess.

APPEARANCE:
XFCE should feature a simple way to automatically switch the default layout to a classical GNOME-like one (hint: see Xubuntu) or to a KDE-like one (hint: see Vector). This would appeal to users of GNOME, KDE and Windows, and it would also ease their migration.

INTEGRATION & GETTING KNOWN:
XFCE should either make the Goodies Project part of the official release, or have it better managed, and Linux distributions should be encouraged to use Goodies (and to report bugs and possible fixes).
The Xfce Goodies Project is today the source of a lot of innovation in XFCE, but it's not entirely consistent, and many Linux distros don't ship much of its plugins and applications, hence making the newbie think of XFCE as of very limited in capabilities!
XFCE should avoid the mistake made by the GNOME project, who has abandoned some of the applications (e.g. Atomix, Agnubis, Glipper), only to integrate as "official" poor quality applications like Dia!
For instance, I once wanted to find a wallpaper from Xfce 4.4BETA1, and I couldn't find it! What's worse, I couldn't find the upstream source for Mandriva's package xfce4-artwork. That means one can't rely on Goodies, and this has to change, especially with regards to XFCE4-Artwork.
Also, distributions should be encouraged to ship with the most valuable plugins and extra applications already integrated: thunar-svn-plugin, thunar-thumbnailers, ristretto, xfce4-clipman-plugin, xfce4-mailwatch-plugin, xfce4-notes-plugin, xfce4-timer-plugin, xfce4-taskmanager, etc.
There are already some means to facilitate the migration to XFCE: for instance, you can run GNOME applets through xfce4-xfapplet-plugin. This is however only a workaround, so XFCE should advertise its small gems more prominently.
Moreover, given that GNOME doesn't have a multiple clipboard manager (KDE has Klipper), xfce4-clipman-plugin should be particularly advertised.
Then, as many distros only ship with xfce4-systemload-plugin, people tend to want to add the GNOME task manager, because nobody tells them of xfce4-taskmanager!
UPDATE: Actually, xfce4-taskmanager should be made a plugin, not only a standalone application, as it's clumsy to be unable to have it minimized in the system tray.
RE-UPDATE: The excellent xfce4-mailwatch-plugin (who knows of IMAP, POP3, GMail, Maildir, Mbox, MH) is not even hosted on goodies.xfce.org!
Also, some XFCE distros don't ship with xarchiver, but with GNOME's file-roller instead.
Finally, xfce4-timer-plugin is useful for people coming from KDE and missing KTea :-)
RE-RE-UPDATE: Actually, functionality duplication should generally be avoided, therefore the use of xarchiver should probably be discouraged in the favor of Squeeze, once the latter is considered as having the required level of completeness and reliability. As a matter of fact, and as a proof of the confusion that reigns with regards to XFCE's many tools, I have never used Squeeze so far, I wasn't even aware of it! (I suppose it's not "officially ready" yet, as the Projects page is still listing Xarchiver under "Archive Manager".)

CATCHING UP:
There are a few fields where XFCE still lags behind.
The most prominent one is the lack of awareness of SSH in Thunar (the way Nautilus handles ssh:// and Konqueror handles fish://). I am still using Nautilus + gedit for that, but the right thing would be to extend Thunar with a SSH-aware applet that would be able to: (1) copy, move, and rename remote files; (2) retrieve a remote file, open it locally with Mousepad, then upload it back once Mousepad saves it.
UPDATE: Some people complain about Samba too (fusesmb? pyNeighborhood? — now a stalled project).
Secondly, xfce4-xkb-plugin can only switch between keyboard layouts that have already been manually defined in xorg.conf. An easy way to manage multiple keyboard layouts should be implemented, possibly like we can see in Xubuntu 7.10: an extra tab in the Keyboard Settings dialog, that should allow users to overwrite the X configuration. Currently though, finished or not, unofficial or not, I don't know why it's there, because it doesn't work. As a workaround, Wolvix has added by default an easy way to switch between a few popular keyboard layouts.
Even more difficult for most people (and this should be added too): extra keyboard layout options. Not as complicated as in KDE, nor like in GNOME (lately, it started telling you about the 6th level, and almost nobody knows what it is), but a GUI should be provided to get rid of the necessity to use XkbOptions in xorg.conf. Configurable options should include at least (or at most!):
Choosing the Compose key (e.g. "compose:ralt" or "compose:rwin").
Choosing the group toggling and the 3rd level key combination (e.g. "grp:alt_shift_toggle", "lv3:ralt_switch"). And explaining what is what.
Choosing where to add or not the Euro key (e.g. on "5" or on "E", with the 3rd level).
Choosing how to add or not the non-breakable space (e.g. space, with the 2nd or 3rd level).
Lastly, xfce4-battery-plugin should have added menu entries allowing the user to Hibernate and Suspend in an easy way (this could also be implemented in the logout screen, the way it's hacked in Xubuntu).
UPDATE: I forgot to mention the opaque painting of the desktop icons text! This is so very Win95-ish! I don't remember when Winblows Windows started to know how to paint transparent icon texts (with or w/o shadows/outlining, that's a different issue): was it with Win98 or with Win2k? Either way, we're in A.D. 2008 and XFCE paints the labels for the desktop icons opaquely, on a uniform background color and with nice rounded corners... but some people would like to be able to see them printed transparently!

EVEN MORE COOPERATION:
Making partnerships with a few 3rd-party applications.
The same way everybody thinks of K3b as being "the" KDE burning application, whereas K3b is not part of the official KDE project, XFCE should enhance its public image by making a few GTK+ applications "officially recommended by XFCE". For the beginning, the best candidate is Claws Mail(*).
___
(*) P.S.: Having a publicly recognized "(semi-)official mail client" would be an asset. Take GNOME and notice their emasculation: while Balsa is hosted on gnome.org and it might still claim to be "the" GNOME e-mail client, everybody is using Novell's Evolution for that (if they don't use Thunderbird instead).

That's all. Success won't be brought by Mono, Compiz and whatnot. Success requires a coherent vision. While GNOME goes nowhere but Mono, while KDE3 is a dead end and KDE4 is not ready and it's disruptive, there is a possibly winning choice: XFCE.
À bon entendeur, salut !
Feb. 19: It seems that a clarification is needed. A reader was complaining that the integration of all the plugins would make XFCE as bloated as GNOME or KDE. In reality, integration does not mean that XFCE should load all the plugins by default — no way! Instead, integration means:
— that XFCE has a better control of the Goodies, and this includes a better management of the bugs in Goodies;
— that a distro that ships with XFCE is strongly advised to have as many plugins as possible built as packages and available in the official repositories (not installed, not loaded, but available);
— that a distro that ships with XFCE is strongly encouraged to use the XFCE application or plugin where available, not an equivalent GNOME one;
— that XFCE has a more correct public perception with regards to its actual capabilities.
The only reason I have never supported XFCE is the absence of any type of "normal" right click menu. I know this would at present require the installation of Hal and other bloated libs. Thunar needs to have it's own independent of Gnome.
Very good article !
What I miss the most in Xfce, or more specifically Thunnar, is the lack of "extract to" (unzip, unrar etc...), and of course the lack of GUI file sharing app, such as "connect to server" in Nautilus, in order to share files between PC's (Windows or Linux)...
Indeed, Xfce could position itself as the "non-mono", "non-KDE4" DE, and lots of folks would happily run Xubuntu, Vector or any Xfce based distro...
I hope Olivier Fourdan will read this article ;)
Caraibes,
1. I've updated the article with a part about the opaque icon labels.
2. As for « the lack of "extract to" », I'm afraid you're wrong. What distro are you using? If xarchiver is installed, you should have: "Open With Xarchiver" (the first menu item), "Extract Here" and "Extract To..." (almost the last menu items). As a matter of fact, similar menu items appear even on Xubuntu, where GNOME's File Roller is used instead of XFCE's Xarchiver.
3. "connect to server": I am not a very big fan of Samba, but I need SSH awareness.
I have found that changing the keyboard layout has been less intuitive than Gnome and KDE. This, for me, is a deal breaker. Fix this, and I will most definately consider XFCE on my desktop.
Xfce and Gnome need a better Volume Manager... KDE Media Manager is by far better.
Xfce also needs a way to stop services during logout.. I could not find it... KDE uses shutdown folder for example. Xarchiver needs also more work to become similar to others... I use Xfce daily as my primary desktop. I like it. We need more people developing goodies.
Quité Gnome (dropline) de mi laptop. Ahora tengo Slackware current con XFCE + XFCE goodies ( de la página de Robbie Workman), modifique los paneles como los de Gnome y uso Wicd en lugar de network manager.
Para compartir archivos con redes windows se puede usar fusesmb.
>2. As for « the lack of "extract to" », I'm afraid you're wrong. What distro are you using? If xarchiver is installed, you should have: "Open With Xarchiver" (the first menu item), "Extract Here" and "Extract To..." (almost the last menu items). As a matter of fact, similar menu items appear even on Xubuntu, where GNOME's File Roller is used instead of XFCE's Xarchiver.<
-My mistake... now that you mention it... you are right...
But that still leaves us with the "connect to server" issue...
Sure, but I am much more bothered by the keyboard stuff... and I have yet to see that taskmanager!
I used XFCE for quite some time in the past and loved it. I just switched to KDE because I needed some QT/KDE apps.
My wishlist: that you don't need to enter manually the info (name, description, command, browse for right icon) when you want to add a launch icon to the panel. You should be able to right click>add application to panel > select application from menu.
The default layout should be like in GNOME, I agree. With the panel as wide as the screen so you can actually use all the space.
6. Béranger stops trolling and becomes an official XFCE developer.
Oh, xfce4-taskmanager works in Fedora, mea culpa.
> You should be able to right click -> add application to panel -> select application from menu.
Or by dragging and dropping from the menu!
ciol,
that would be a nice one :-)
should I allocate some time to learn GTK+ programming, I might try to hack a plugin or two.
I noticed a funny opinion here: http://humanreadable.nfshost.com/sdeg/xfce_improvements.htm
"Although starting and quitting faster than KDE, the Xfce desktop is not noticeably faster on my older hardware and is slower than NT4. Can desktop response be improved?"
Slower than NT4 -- for those who remember how it was.
I don't agree with the opacity comment - I find transparent text horrible.
As for packages and extraction, Xfce has Squeeze: http://squeeze.xfce.org/ .
As for integrating plugins, I completely disagree. We don't want our favorite DE to bloat and collapse. I think a great strength of Xfce is how they are NOT included by default. But maybe it should be considered using an extension interface like that of Firefox?
Morten,
1. Everybody has transparent text -- except for XFCE. If the user could have the choice between the two ways, it would be even better.
2. Integration DOESN'T mean that a distro MUST LOAD all the plugins by default, but a distro should HAVE THEM PACKAGED AND AVAILABLE IN THE REPOS!
Hi there,
XFCE has a list of recommended apps on its wiki, http://wiki.xfce.org/recommendedapps (and Claws Mail's on it :)
Also, given that XFCE is developed in a sensible way and makes things easy to integrate without tons of gconf/dbus magic, Claws Mail is actually quite well integrated in XFCE, with thunar-sendto-email handling it, and Orage (the XFCE Clock/Calendar), which can "subscribe" to external calendars, can be made to see Claws' calendar with one click in Claws Mail.
Well, that list is too long. This is not a bad thing per se, but a shorter list of "must have" would be better. I mean, there is a difference between "recommended" and "highly recommended" :-)
The Gnome developers are actually Xfce's allies in making Xfce better. Most Gnome development in recent years has been centered on (1) freedesktop libraries, which can be used by any desktop environment; and (2) making GTK+ better-- which benefits Xfce as well. For example, Alex Larsson, the maintainer of Nautilus, has developed a much better networking stack to replace gnome-vfs: gio/gvfs. Guess where it is landing? Glib, which Xfce also uses. So, after March, Xfce will have a vfs system, including ssh://, for free with their use of GTK+ and GLib.
Make XFCE more like CDE (like it use to be) and bring CDE/OpenStep like desktop UI look-n-feel to the 21st Century. XFCE seems more like Gnome hacked than anything else these days, not saying that's bad, but in order for XFCE to bring something more unique; then XFCE will need to bring a more radical approach to the desktop environment.
After ranting regarding your post on Xfce distros, I'm doing it here too ;-)
First, I want to deal with the "default layout" situation. The Xfce Panel Manager is so easy to use that default layout is irrelevant - when I first used Xfce (I'd never touched it before), I changed my panel from a Gnome-like one to a small 'Windows-like' one half-width on the bottom with task list covering a strip on the top in under a minute.
The only really obnoxious thing in Xfce is that the opaque text (which I like) gets screwed up by the Xfwm4 compositor. That should be fixed. Also, Squeeze is a vastly better choice than Xarchive (it's getting quite stable). Ristretto should get more press.
One fantastic feature would be a sort of 'one-stop-shop' for Thunar custom actions (like Mozilla's add-on site). Users could upload their favorite custom actions and pick out new ones. This is Thunar's (and perhaps Xfce's) finest quality, and it should be showcased.
Hoping to read more Xfce thoughts soon :-)
One of the desktop killers for me is yakuake. I struggle to use a desktop without the functionality of a terminal built in. i know its more of a coder thing than a main stream end user, but its a nice feature. On that note, if i get time and there is no such thing, i might try and implement it. otherwise xfce is impressive, i used it for a while just for playing wow and coding, and overall performance was great. sadly the main thing i missed was yakuake, so i went to a kde 4 beta.
> The Xfce Panel Manager is so easy to use that default layout is irrelevant
The defaults are always relevant, as they play a great deal in making people love or hate something: an application, a desktop environment, etc.
Hey, even when you meet a new person, the first 2 minutes is when you already develop an opinion on that person -- including whether you like him/her or not!
For me the main problem of xfce is not in xfce itself, but is the lack of gtk apps that are similar to the gnome/kde based in terms of functionality.
For example, i use often a digital camera and i have a lot of pictures. Gqview is quite good but extremely slow when creating thumbnails ( on old hardware like a pentium 2 400, it takes about 10 times compared to thunar ), doesn't have an import from camera feature, and lags a lot behind gphoto, for example. And it's development is currently stalled, from December 3, 2006.
Wow your comments about Mono are a lot rational. But must be some Linux fanatics. Please uninstall support for .DOC documents from OO.o too. Btw you could even uninstall Java since it is not ever a standard, and because they monetize their framework using Java ME. Just note that Mono does not mimics .NET, it implements the ECMA standard, and thanks to the PE format, .NET programs are cross platform.
If you wan some rational arguments, I can provide some: Mono is a lot faster than Python (thus ideal for older CPU), but use a bit more memory than Python (less fine for older RAM). http://shootout.alioth.debian.org/gp4sandbox/benchmark.php?test=all&lang=csharp&lang2=python So shall we also avoid Python? I hope not, because I love both of them. Of course you can code in C if that's what you enjoy, it is indeed faster and uses less memory than both Mono and Python.
But at leat I'm glad you did not use the patent argument, since the Linux kernel like infringe more patents than Mono.
I have to comment on your update to Point 0, Independence, because that is the stupidest thing I've heard in quite a while. You don't want .exe files and .dll files on your Linux box? Get over yourself. They're just file extensions -- they could as well have been .jar files or .py files or .so files.
Opening up for the possibility of rapid application development without the blatant sacrifice of performance that comes with interpreted scripting languages, which is basically what Mono has done for Gnome, is key to the success of any platform hoping to become widespread.
In the case of XFCE, however, this is not really a point, because nobody writes programs for XFCE. They write programs with GTK+ and Gtk#. The XFCE developers should not hesitate to do so as well, if it improves their productivity and creates value for their users.
The licensing "issues", see http://www.mono-project.com/FAQ:_Licensing and be educated.
- Simon
"Please uninstall support for .DOC documents from OO.o too. Btw you could even uninstall Java since it is not ever a standard, and because they monetize their framework using Java ME. Just note that Mono does not mimics .NET, it implements the ECMA standard, and thanks to the PE format, .NET programs are cross platform."
Laurent, you're wrong.
When I open a DOC file, this is because the person who has sent it to me was unable to use another format. And I want to read it.
When I save as DOC, this is because the person who will receive it is running Windows. And I want her to be able to read it.
NONE OF THESE TWO OPTIONS ARE AFFECTING MY INDEPENDENCE UNDER LINUX!
However, EXE and DLL are Microsoft file extensions for formats that only run under DOS, Windows, OS/2 and emulators (WINE, Cedega). P[ortable]E[xecutable] is developed by Microsoft, for use as .exe, .dll, .ocx, .sys, .scr, whatever. Now, I don't NEED this file extension under UNIX-like OSes. How the fuck is Mono NEEDING a particular file extension in order to figure out what to do with that file?! Oh, it doesn't?! Then WHY is that file ending in .EXE?
I am strongly refraining myself for not making injurious assertions WRT the intelligence of the people who find "normal" the NEED to have a bunch of DLL and EXE files on their Linux/BSD box in order to be able to RUN a particular open-source application.
======= If I wanted to have EXE and DLL files on my system, I would have been running Windows instead. EXE and DLL are EXECUTABLE files, not documents!!! =======
It's not about the speed or about the memory footprint, so it's not about Java, Python, Ruby, Perl, shell scripts, whatever you may find as "suboptimal".
"You don't want .exe files and .dll files on your Linux box? Get over yourself. They're just file extensions -- they could as well have been .jar files or .py files or .so files."
Simon, EXACTLY because they are file extensions made up BY MICROSOFT, I don't want to NEED to have them in front of my eyes!!!
I can choose to save a file as .DOC... or not!
But I CAN'T CHOOSE not to have two dozens of DLL and EXE files on Linux as long as I want to run F-Spot, Tomboy, Beagle, etc.! (But I don't want to run them anyway.)
I don't fucking care about the licensing part of Mono -- and licensing has nothing to do with patents, nor with peace of mind.
And I don't fucking care about the piece of shit that bears the name of Novell Incorporated.
======= ALL THE FUTURE COMMENTS THAT CONTAIN REFERENCES TO MONO WILL BE SIMPLY DELETED. =======
======= THIS BLOG IS MY PRIVATE PROPERTY AND I CAN CHOOSE TO DENY REFERENCES TO MONO IF I WISH SO. =======
======= MONO IS MICROSOFT .NET BROUGHT TO LINUX/BSD, AND I DON'T WANT MICROSOFT TO RUN MY LIFE, BEING IT UNDER THE NAME OF NOVELL. =======
transparent icon text can be accomplished editing ~/.gtkrc-2.0
http://xubuntu.wordpress.com/2007/08/27/howto-remove-the-borders-of-your-desktop-icon-text/
The most important features for me are: simplicity, speed and good looks.
Not sure I understand the need to discuss the merits of the speed of Xfce vs. KDE/GNOME, as speed is above all an implementation issue, and all 3 desktop managers will try their best to optimize their algorithms to run as "efficient" as possible. You'll need to define "efficient" first, as per the example of dotNOT running faster but using more memory than Python, which I highly doubt is the case in all production scenarios.
My point is, to beat a - by now - rather old drum: The cost of RAM is down to $40 or less for 1 GB, so someone spending 3 months making Xfce run on - e.g. - 30 MB less either has entirely too much time on his hands (yes, "his", count the number of female developers) or does it for the sheer reason of "because I can". But "because I can" is the worst, most meaningless line of "reasoning" ever concocted by people with time to spare. By the same token I could argue the merits of killing, stealing, etc. I'd think we're either smarter than so, or that we're rich enough to decide on our particular ways of wasting time.
That something might actually run faster using MORE memory is by now a proven fact of life. Take any database and run it in RAM or realize the difference between a smaller and a larger file cache. So the whole point of minimizing memory use really boils down to convenience on a few embedded platforms that solder the RAM blocks directly onto the motherboard in order to save money, then refuse to add a card reader for extending the memory, and where are those platforms now? Even Mr. Java himself decided that embedded platforms have enough RAM for him to scrap Java ME and make SE the default platform for ALL development.
Then there's the EXE and DLL argument. Since when did Linux care about file extensions? And does this mean you're refusing to run Wine too? Oh, and the .exe files generated by the Mono compiler are no more binary executables than .pyc files are, Thom. Read up first.
Here's why Mono uses the .exe extensions:
http://www.linuxformat.co.uk/wiki/index.php/First_Steps_with_Mono#Why_Mono_uses_.exe
[When Mono creates executable files from your C# code, it uses the file extension ".exe", which we all recognise as the Windoze standard executable format. In fact, if you try executing your programs from the command line without using "mono" in front of them, it may not work, because Linux won't know what to do with it.
The reason Mono uses .exe for its files is for cross-platform compatibility. If you take your program, ParamPrint.exe, and copy it onto a Windoze machine, it will run natively and print out the same message when you pass a parameter to it. This is because Mono is based on Micro$oft dotNOT, which is installed on most Windoze computers. No recompilation is required, no source code editing is required, and actually no one can tell what platform the program was compiled on - and it doesn't matter, it just works]
Cross-platform is a nice thing, I think, however much I loath the business practices of the Seattle-based leeches.
And here's the details on the dotNOT-generated .exe and .dll files, which, mind you, are in the PE-format, but actually comprise a collection of a number of files, like a .exe archive does, into a so-called ".NET assembly":
http://en.wikipedia.org/wiki/.NET_assembly
But I think you knew this. You're a bright guy. It just doesn't make the rant on something as trivial as a file extension on an operating system that doesn't recognize it quite as feasible.
The FEELING of seeing .EXE or .DLL on your Linux desktop, on the other hand, is something I can understand and, to a certain point, sympathise with, but then, emotional outbursts are seldomn very rational in nature. You're frustration with the inconsistencies of the Linux desktops seem to me to be more rooted in something which affects day-to-day experience above and beyond the trivial aesthetics of a file extension, especially considering that this extension is there to make life easier for you when your Windohs-only friend asks to check out your latest creation of genius, arguing that the whole idea of Mono was to asure cross-platform deployment of dotNOT assemblies.
Disclaimer: I deliberately use figurative names for Micro$oft technologies to make sure I'm not annoying sensitive souls in a Micro$oft-dominated world, and, of course, to not have Micro$oft-trademarked extensions on my desktop (Firefox).
I was an XFCE-fan, but a scientific mind has its own attitudes.
So I loaded a Sempron2600+512MBRAM with both Mint Daryna XFCE and MEPIS 7.0, installed CrossOver and OfficeXP, and ran simultanioulsy: VLC (24kbit radio)+Frontpage+Firefox, both for a few hours re-editing website-pages.
MEPIS does run lighter, especially when editing larger pages. That's the moment I started to doubt one thing and another: perhaps other GUI's are optimalized and improved?
> it uses the file extension ".exe", which we all recognise as the Windoze standard executable format.
> [...] because Linux won't know what to do with it.
Really? Oh my, Linux is like Windows! Have you ever heard of "libmagic" and of that cute utility named "file"?
http://packages.debian.org/etch/file
http://packages.debian.org/etch/libmagic1
http://en.wikipedia.org/wiki/File_%28Unix%29
For a very interesting reading:
cat /usr/share/file/magic
But I am sure you knew about it -- but the LXF guys... maybe not.
> The FEELING of seeing .EXE or .DLL on your Linux desktop, on the other hand, is something I can understand
> and, to a certain point, sympathise with, but then, emotional outbursts are seldomn very rational in nature.
OK. Let's try the other way:
(a) Is the Linux/BSD world so doomed, so clueless, or in such a complete lack of languages (C, C++, Perl, Python, Java, Objective-C, D, R, C--, Lua, Smalltalk, Lisp, PHP, Ruby, Tcl, etc. etc.) that we all NEEDED for Microsoft to save us from a certain death, which was definitely approaching, but Microsoft just save the world by inventing C#?
(b) Is the Linux/BSD world so doomed, so clueless, or in such a complete lack of system libraries (zillions) and computing paradigms (many; from libc to Java, passing through all kind of interpreters) that we all NEEDED for Microsoft to save us from a certain death, which was definitely approaching, but Microsoft just save the world by inventing .NET and the uniquely marvelous concept of CLR?
I guess not. I can live without the CLR.
> Mint Daryna XFCE and MEPIS 7.0, installed CrossOver and OfficeXP, and ran simultanioulsy: VLC (24kbit radio)+Frontpage+Firefox [...]
> MEPIS does run lighter, especially when editing larger pages.
There is more than the desktop environment here!
The only accurate test would be to run the same applications on the same distro, at different moments of time, with XFCE, KDE and GNOME.
You can use Debian, Ubuntu or Fedora for that.
> Really? Oh my, Linux is like Windows! Have you ever heard of "libmagic" and of that
> cute utility named "file"?
Yup, and no, Linux is not Windoze, but they are both operating systems with a common ancestry at Bell Labs through the PDP-11, where most that matters either originates or was taken to its practical conclusion (C, UNIX), and where some REAL, non-trivial shift in technology is still researched by the same bright people who gave us the basis for the Unix philosophy, so heavily rooted in the Von Neumann machine and Wirth's "a computer program is a blackbox that takes input and produces output".
Both operating systems
* support the POSIX standard and the GNU toolchain (Windowz: Through Cygwin)
* have the same portfolio of software available (gnuwin32, KDE-on-Windoze, Gtk+ for win32, wxWidgets, Qt, etc. ad nausseum)
* base their make-or-break status on the state of a particular file system hierarchy structure (for an example of a persistent problem with Unix-break, take the absolute path shebang-lines in most scripts or try moving your binaries from, say, /usr/bin to /var)
* come with a prize, be it an upfront payment for short-term comfort, or the - arguably, much higher - prize of learning a (perhaps in all fairness not so) different set of choices of abstraction
* take their user's knowledge of how to operate the machine for granted
* scale processes and threads (relatively) poorly to multiple machines running across a network
and both operating systems install on the same hardware and abstract it to a comfortable API level, yadiya...
I could keep going, and so could you, if you pleased. In the end it comes down to your dislike for Micro$oft, which I share without the slightest reservation, and your dislike for anything that smells of their offspring. But Micro$oft did not device C# or the CLR - people working at Micro$oft did. The same guy, in this case, who wrote what would later become the most popular programming tool of the 80s, by far, Borland's Turbo Pascal:
http://en.wikipedia.org/wiki/Anders_Hejlsberg
Getting money for doing what you like is no crime. Writing software for Micro$oft is no crime. Micro$oft's business practices may constitute (a) crime(s), but that is not for either you or me to decide. We can only choose what set of ethics will influence our (non-)use of their software.
Ironically, I agree with most of your frustrations with the world of software. I seek peace, meaning a constructive cooperation of the intellectuals/practitioners of the software world towards better solutions, but unfortunately the very company that you and I hold in such low regard are the perfect example of what peace will get you: Monopolistic(-like) status quo.
No competition means bad solutions. So, having Mono means an enlarged demography, more "competion", and by extension, through the most natural (that is, effective) evolutionary process, better tools, which, through the same recurring process will be evaluated, re-evaluated and -invented, and competed against.
It's the way of the world, and although it means a lot of work for you and I - and the hundreds of millions (billions) of other (un)fortunate users, as we struggle with making the "different" abstractions understand each other, it guarantees choice.
And choice is what I value, above all, and I believe you do too.
> I guess not. I can live without the CLR.
So can I, of course. I love/hate C to (my) death, and we are all running C, of course, all the time, as most abstractions, including Perl, Python, Java, even C#, and most other software ever written, has C to thank for its existence.
But should we keep writing software in - what to my mind constitutes - a macro assembler? Is that the best we can do? Is that the best use of precious developer time? I think not. As a consequence we use C to abstract further into the realms of declarative paradigms like Clean, OCaml, SQL and what have you, and interesting evolutions like Plan-9, Occam, EROS and the MIT exokernel. That is how we build civilization from the simple tools of the stone age - through constant abstraction.
I don't think the CLR is the last word in the evolution of abstractions, but it does solve some problems neatly, like "use whatever programming language you like to write against a standardized abstraction layer". This is feasible using traditional bindings to libraries, but I find the CLR solution rather elegant. Does that mean I'll be using it? No. I like my freedom - to the max, and as long as it smells of patents and lawsuits, and anyone who thinks a meer ECMA-standardization of one component in the entire framework makes any difference needs to look at the - largely predatory - history of the Seattle operation.
But it's a choice which means less peace, more work, more time wasted debugging, unless of course I choose to go the scripting route, which is exactly what I have chosen to. Slower, more memory-hungry, but oh so free from the taint of the interests of enslavement and monopoly.
Keep at it, buddy.
-- GNU toolchain/Cygwin, gnuwin32, KDE-on-Windoze, wxWidgets, Qt: NOT BY MICROSOFT.
-- KDE-on-Windoze: not working, no matter what they claim, not even the fucking installer!
(see http://beranger.org/index.php?page=diary&2008/01/24/15/12/35-what-kde-for-what-os-)
> http://en.wikipedia.org/wiki/Anders_Hejlsberg
I would have *NOT* loved C# and the CLR, not even if Anders Hejlsberg would have worked for IBM, Red Hat or Sun!
As a principle, it's bad idea to make a simple thing complex -- and this is exactly what CLR does.
As for C#, we already have C++ and Java.
Java is another bad idea for simple applications, this is why *in real life* it's only use in situations where the complexity of the approach is not an issue, given the complexity of the multi-tiered enterprise software developed in J2EE.
You won't see anymore silly Java applets on people's computers -- but there is an invasion of Gtk# silly small applications!
Does it means that some Linux users and developers are idiots?
> Writing software for Micro$oft is no crime.
Yes it is a crime!
> Micro$oft's business practices may constitute (a) crime(s), but that is not for either you or me to decide.
Yes it is for us to decide. Otherwise, the monopolistic society we're living in will NEVER condemn Microsoft!
> what peace will get you: Monopolistic(-like) status quo.
:-(((
> No competition means bad solutions.
It depends. It may also mean that it's no broken, so there is no reasonable need to fix it.
There is competition, but can you invent a better safety pin? No, you can't. Can you invent a pen that doesn't look like a pen? Can you invent a better wheel not being round?
Microsoft-like thinking is trying to invent a whole machinery to replace a wheel. Thanks, but no thanks.
Oh, and competition per se is not a good thing, except if when you're American. In that country, being "aggressive" and "competitive" are qualities.
Is religious competition (my God vs. your God) bringing a new God or building a better world? NO, it does not. Everyone will continue to stick with his/her God and system of values.
Is the political debate really a competition? If it is, how come that 99.999999% of the politicians are pieces of shit, all over the world? Why don't we have a better world, as it should have been guaranteed by the competition?
Competition is just a world. We need more than that.
We need COMMON SENSE, and this is a very scarce resource nowadays.
> And choice is what I value, above all, and I believe you do too.
Choice. Yes, provided that we have good alternatives. If the alternatives are: (a) I can choose between 2 crappy things; (b) I can have a single option, but much better; then I don't need choice.
Quality is what I need. And, again, common sense.
At times, when you chase several rabbits at once, you don't get any...
Decades ago, was it much choice for scientific applications? No, it only was FORTRAN (give or take; we can ignore the others). And it was good.
Decades ago, was it much choice for financial applications? No, it only was COBOL (give or take; we can ignore the others). And it was good.
Now we have plenty of choice, but we need trillions of transistors to write an e-mail. This is just CRAZY!
> I don't think the CLR is the last word in the evolution of abstractions, but it does solve some problems neatly
Java and C# teach people that they shouldn't care about memory management AT ALL.
This is creating a generation of IDIOTS.
With a little luck, in 20 years there wouldn't be anybody left to develop the OS itself (or the garbage collector). Then we'll know that we won: the world is a collection of morons.
While I agree with most of your points, your first point is technically brilliant!
INDEPENDENCE: XFCE should continue to stay away of Mono.
Because you don't like EXE and DLL files...
Update, please.
OK, then XFCE *should* integrate: Mono (at least Gtk#), Java, WINE, the kitchen sink, Mother Teresa, The International Monetary Fund and Godzilla.
If one of you, the readers, are XFCE developers, and you happen to like/love Mono, and to intend to "officially contaminate" XFCE with it, please let me know at info@, so I could change my mind before settling for XFCE. It's not worth switching from XFCE to GNOME just to see XFCE becoming the second GNOME!
Otherwise, I am closing the comments here, I am too bored to delete shitty mails. (It wasn't me to post this story to OSNews, nor to Digg.)
Thom, you are such an angry man - cudos to you for keeping it up :-)
Pardon my making it a little personal, but the tone of argument reminds me of my favorite comedian, George Carlin, so let's pick up the pace a bit.
So, tell me what's so bad about the CLR: Its unification of API? Its ability to run compiled applications cross-platform like Python, Perl, Java and what not? That it allows you to keep source code to yourself if you so choose, in accordance with, e.g., the philosophical view of Linus Torvalds, but not, of course, that of RMS? That it is weighs in at 100-150 MB (memory is no issue except on embedded systems, and even that is changing, as I mentioned)? That it re-does the C syntax and looks - superficially - like Java? That CLR is stack-based like Python et al? Or that it's "tainted", as I propose is the real reason you (and I) are refusing to like/run it?
> There is competition, but can you invent a better safety pin? No, you can't. Can
> you invent a pen that doesn't look like a pen? Can you invent a better wheel not
> being round?
I might be able to, yes. Actually, in certain circumstance, an oval wheel might be a superior solution. And a pen that doesn't look like a pen is easy enough. One that caries with it new and better functionality is arguably hard, but then, what is a computer keyboard?
> Java and C# teach people that they shouldn't care about memory management AT
> ALL.
Anyone who's written a non-trivial Java application knows that you're dealing with memory issues in Java just as much as in any other language. The ease with which you can allocate instances of large, complex classes in an event loop teaches you precisely NOT to. It makes you appreciate knowing what you're doing. Anyone who's written a non-trivial C application will quickly realize that garbage collectors are a Good Thing(tm). And anyone who thinks massaging bare metal is fun should be coding embedded stuff or do operating system development, and how many developers like that can you mention off the top of your head? Linus and Alan?
I don't know a single developer personally who knows the inner workings of the Linux kernel to an extent that allows him to contribute significantly to it, but then, I'm not some hotshot in the Linux world. I watch the YouTube videos and marvel at the pleasantly harsh and to-the-point nature of Linus in his speeches, but I don't spend my time socializing with these guys at convents and shows. I don't have the time.
> Is religious competition (my God vs. your God) bringing a new God or building a
> better world? NO, it does not. Everyone will continue to stick with his/her God and
> system of values.
Now that you mention it, organized religion never contributed anything but what any other political apparatus did and will: Narrow-mindedness and a furthering of ignorance, along with the odd war or two. But that's just the historical facts, and facts are not popular among the believers, be it in a metaphysical god or the evil of whatever commercial organisation we choose to hate for the hell of it.
> Is the political debate really a competition? If it is, how come that 99.999999% of
> the politicians are pieces of shit, all over the world? Why don't we have a better
> world, as it should have been guaranteed by the competition?
> [...]
> With a little luck, in 20 years there wouldn't be anybody left to develop the OS
> itself (or the garbage collector). Then we'll know that we won: the world is a
> collection of morons.
To quote reverent Carlin, "I don't complain about politicians. Politicians don't fall out of the sky." They are chosen by and part of the public that complains about them. If the public doesn't like the people they chose, who does that point the blame to? Is there any excuse for believing in the pre-election bull you're fed, only to go "my needs weren't met" once reality hits in? Politicians tell the public what the public wants to hear, which is seldomn the truth. If you can do it better, step up and take the seat in office. Before you do, though, prepare yourself for a world of pain: Whiners complaining about your every move and choice, day in and day out.
> We need COMMON SENSE, and this is a very scarce resource nowadays.
Ain't that the truth...
So, here's some more truth for you: Most people don't matter. Most people don't make any measurable difference to the advancement of the human race. Most people repeat simple patterns that they aren't even aware of. Most people can't solve the most trivial problems. Most people are mostly ignorant simpletons with a knack for dwelling on so-called "problems of social interaction". Most people are inconsequent whiners who would just as soon stab you in the back for their own personal benefit, as they'd help you take it to the next level. Most people do little, talk a lot.
And so do we.
So, I'll get back to my work on a better knowledge base based on PostgreSQL, my PostgreSQL<->SQLite mapper, and to the many nice, shining servers in my data center, and, hopefully, make a small contribution to the advancement of the human race through the hard work it takes to write stuff in C and Perl.
With a little luck, in 20 years, I will still be able to write a garbage collector.
> So, tell me what's so bad about the CLR.
OK, this is the last time I'll comment, because I really appreciate your effort to write relevant things.
To put it in a very simplistic way (you'll definitely notice that), I'll explain "What's wrong with CLR -- for Dummies", by Béranger.
What's wrong with CLR is not about the "common" part of it (which is actually good!), it's the whole paradigm: it's the part in it that's exactly like Java.
THE EXTRA LAYER, that is!
To simplify, how gets a binary to be executed by the kernel? How far away is the code from the hardware? Except for what is the code actually doing with the CPU registers, once it manages to get there, what else is doing the binary that got build from your printf("hello world"); statement?
In the simplest case, it's "one level" away: if it's a statically linked binary, it only has to make system calls and the kernel is taking care of that. And whatever else is it doing, it's still only the kernel that keeps it away from the hardware. (Simplistically put.)
Then, there is the "one-and-half level" case: the dynamically linked binary needs some libs, it doesn't do only system calls. Maybe it's an X application, so the libs are "jumping" a little more until "touching" the hardware. But this is still not very much away from the hardware, as it's the simplest way you can get these things working -- this is why I named it the "one-and-half level" case.
Then the interpreted languages enter the scene. Judging from the dramatical drop of performance due to the many CPU cycles needed to interpret them on-the-fly, we can call this the "two levels" case, but it could also be considered a "one-and-3/4 level" case, because the interpreter can be judged as a mere translator, however complex. As it is a supplementary level of "runtime management" between your code and the hardware, let's agree that this is the "two levels" case.
Now, what we get with concepts like Java or .NET/Mono? We get a "third level" case! More isolation from the hardware!
What do you have (again, simplistically put) in the JRE or in the CLR? Not just an interpreter! More like a whole operating system atop of the operating system!!!
Judging by the richness of the libraries (I am particularly thinking of Java, not of .NET/Mono), you can definitely consider that there is more than OS independence, interpretation of "half-baked code" (bytecode/p-code), and improved memory management: it's a completely new layer, almost of the complexity of an OS! -- Again, Java is a better example here, and think of a Java Application Server: it is huge like an OS.
A more complex system, a new layer of complex "tissue" that has been added between your code and the hardware.
Why was that needed?
Don't we have different system libraries? Don't we have different toolkits? Don't we have different compilers? Don't we have different interpretors?
"Unification" is only the Microsoft buzzword for CLR -- I don't see what's the unification in Java.
"Platform independence" is more valid for Microsoft .NET and for Novell's Mono, because with real-life J2EE applications, the *deployment* is such a huge issue that you won't want to change the platform. Or, if you do, it's actually transparent: who cares what is the OS that runs the IBM WebSphere Application Server? Even if the WSAS were written in C++ and it were in need of a rebuild for a different OS, the Java applications it was running for you couldn't feel the difference -- a J2EE Application Server *is* a fully-fledged OS!
OK, I don't have to recompile anything. If it is about platform independence though, why should all the CLR binaries be EXE and DLL instead of no-extension or .so or nothing at all? Is this "platform independence" designed to spread the Microsoft vision all around the planet? (Yes, it is.)
"Garbage collector". Wow. We *should* be able to have such a thing in a better way, without interpose such a huge overhead in-between. I can't believe that this is the main reason people *want* to develop in Mono, .NET or Java.
On the other hand, let's see some other "benefits" of this extra layer.
You can't simply tell where is the bug: (a) in your code; (b) in the garbage collector; (c) in some other parts of the runtime; (d) in some system libraries the CLR/JRE is still needing; (e) in other parts of the OS, including the kernel.
Debugging such an application is only giving you the false impression that you are knowing what's going on there. You *don't* actually know.
As for concrete examples with .NET, I know of a project that was stuck because of the limitations of the garbage collector. The developers were out of control, and the stuff they were developing needed dozens of gigs of RAM, unless you periodically forced the GC to Collect, but this was unacceptable in terms of performance; so the project was frozen. Should they have had the choice of C++, things would have been different, but they were imposed .NET. I don't think Mono is different...
The "third level" layered approach is bringing an unneeded level of complexity to software, and a new kinda OS atop of the existing OS.
And, ironically, it was for Microsoft to launch this, and for the Linux enthusiasts to re-implement it as Mono.
Microsoft saved Linux!
Am I crazy, or the real crazy people are you, the advocated of Mono in Linux/BSD?
Comments are closed, complaints to info@.


44 comments
You are right to question the lightness of xfce. A fast processor and lots of ram will run _any_ desktop environment at full speed, thus there is no noticable speed difference between gnome or kde and xfce on modern computers. On older machines (less than 1 ghz), xfce seems to have a speed advantage but this is only an illusion caused by distro packaging.
Most gnome distros are fully loaded (bloated) and default to 24 color because the maintainers expect users to have a fast computer. Most xfce distros are lean (stripped) and usually default to 16 bit color because the maintainers are aiming at less powerful computers. Thus it is the _distro as a whole_ that makes the speed difference and not the desktop environment.
It _is possible_ to have a lightweight gnome or kde distro if you build it with performance as a goal. For proof see Beatrix, a very lightweight gnome distro. Beatrix is dead now but the community moved on and built a successor called Debris Linux. Debris is a stripped down Ubuntu 7.10 that runs well on older computers. For example, I have it running on a 500 MHz AMD with 512 MB of ram. Firefox is dead slow but otherwise it runs fine. For an example of a KDE distro that will run on slow hardware see Nimblex. I don't use it because I don't like KDE, but I have verified that it will run on my old 500 MHz clunker.