LXer interviews Benedikt Meurer, a developer of the Xfce project. “One of [Xfce’s] advantages over KDE and GNOME is the simplicity. You can still get to know the code base in less than a week and you are able to understand the basic design decisions. This way, Xfce 4.x has still a lot of potential, while the major desktop environments are in need for a rewrite (KDE already started the rewrite, a lot of GNOME contributors/maintainers are voting for a 3.0 rewrite).”
Complete rewrites are generally a bad idea. Refactoring is the way to go.
Most prominent example: Netscape being rewritten as Mozilla. Now, for how many years where Microshaft allowed to reign the web for that simple reason?
I always though that Microsoft reign so long because netscape just wait to long before rewritten their browser.
“””
I always though that Microsoft reign so long because netscape just wait to long before rewritten their browser.
“””
Nope. there is no code that cannot be gradually refactored from where is is to where it needs to be. There may be some particularly wide chasms to leap during the course of the refactoring. But that’s nothing compared to the challenges of rewriting from the ground up. We would not be cheering FF for having a measly 10-15% market share today (Isn’t that sad?) if Mozilla.org had not spent a year pursuing the *right* course (refactoring what was there) and then thrown it all away in favor of the *wrong* course (a complete rewrite.)
Ouch. We are still paying for Mozilla.org’s foolish actions today, in the year 2007.
cbergman27: “there is no code that cannot be gradually refactored”
Where’s the proof? It is a decision that needs to be done by the management, every single one of them and for every single project. Not mentioning that rewrites are fun and the only chance to really learn something
Sometimes the whole structure is so broken that you have to rewrite.
Seriously, if depends on each case don’t you think so?
And there are also the case of avoidable dependences. For example, many small projects get bond to big libs they should “circumvect” if portability and/or independence are goals to be achievable.
Well, as always, there isn’t a single recipe to cook every thing.
Joel Sponsky has a good article about it:
http://www.joelonsoftware.com/articles/fog0000000069.html
Joel isn’t against re-writes; if you read the article it isn’t about re-writing, its re-writing something without good justifications.
Netscape needed to be written because even if it weren’t, the programmers would have spent equally as long trying to understand the ugly spaghetti code that was Netscape before being able to add/fix anything in it.
With that being said, to avoid the above, good programming practices need to be stuck to; documentation whilst programming, quality, readable code a must. When designing things, ensuring that all the various groups adequately communicate their ideas so that features aren’t duplicated, code is reused, and that when features are added, the impact on the whole project is considered rather than a feature being throw at a problem to make the marketing department happy.
Well, Gnome 2 already was a rewrite, they have lots of documents on it, etc.
So where is the design of Gnome so bad that it justifies a rewrite?
First of all, Gnome is a big project and Gnome3 isn’t something that’s going to show up soon. A lot of what is hoped for feature-wise in Gnome3 will eventually appear in Gnome 2.x including code cleanups.
The only problem with Gnome is that they stick to the 6 months release cycle. There’s no reason why they can’t take 8 months if it means shipping a more solid product.
As long as GTk+ 2.x is improving steadily, there is no reason for a 3.0 migration.
We shouldn’t forget that if Qt4 wasn’t showing us how obsolete Qt3 is, we wouldn’t be needing KDE4 in the first place. Of course, this did give KDE devs the chance for creativity and the technical ability to write better applications.
I’m not saying that Gnome2 is perfect as it is now because Gnome 2.20 sure isn’t. But as I have already mentioned, there is no real need for a Gtk+3/Gnome3 yet.
With time, I’m sure code cleanups and incremental improvements inside Gtk+2/Gnome2 will start to happen even though things may seem slow at the moment.
Once things become too hard to maintain, and Gtk+2 becomes too obsolete that a major rewrite is needed, Gtk+3/Gnome3 will naturally come.
As for Xfce4, it does seem to be a great desktop. There’s no doubt about that. Their Xfwm4 is way ahead of Gnome’s metacity. But most programs I have installed (Rhythmbox, Brasero, Totem-xine) use gnome related libraries so I think I will stay with Gnome for the time being. Not many good applications are just Gtk+.
“But most programs I have installed (Rhythmbox, Brasero, Totem-xine) use gnome related libraries so I think I will stay with Gnome for the time being.”
Using Gnome apps with Xfce4 is probably very common among Xfce users? It is easy and doesn’t slow things down practically at all as both Xfce4 and Gnome are GTK based. If I remember right, doesn’t Xfce4, at least in Xubuntu, even load Gnome libs automatically nowadays?
Edit: And even if it wouldn’t load Gnome (or KDE) libs automatically, it is very easy to make it do so from the Xfce4 preferences.
Edited 2007-09-20 20:18
“If I remember right, doesn’t Xfce4, at least in Xubuntu, even load Gnome libs automatically nowadays? ”
That’s good, I didn’t know that. But in brasero’s case for example, you have to install nautilus and nautilus-cd-burner to run brasero.
Simplicity may be one of the strengths of Xfce4, but probably only on the code level. Unfortunately the flip side of the coin may be increased complexity on a user and usability level.
For example, a simple task of adding application shortcuts to Xfce4 panels is still all too complicated for normal desktop users. I hope the next versions of Xfce4 could better address such usability problems – while still maintaining the lightweight, effective and fast nature of the desktop and the simplicity of the Xfce4 code base.
Edited 2007-09-20 20:21
Drag and drop would be nice.
The one thing I would like to see improved is adding programs to the Xfce menu. They have a tool for everything else on the settings panel, so why not one to add programs to the menu?
You can drag & drop apps from the appfinder to the add launcher dialog (unfortunately not to the panel itself).
Want to add something to the menu? Rclick on the menu icon on the panel, edit menu. As simple as that. Also when adding an entry to the menu you can dnd from the appfinder.
“You can drag & drop apps from the appfinder to the add launcher dialog (unfortunately not to the panel itself).”
Thanks for the hints. However, in my opinion, such basic things should be more obvious to a new user, he shouldn’t have to read a manual (or hear a hint from an experienced user) in order to, say, just add a shortcut to a program etc. Also I didn’t know that you could drag & drop apps from the appfinder to the add launcher dialog. Xfce4 is still a bit too geeky, not newbie friendly enough, in order to really compete with GNOME or KDE. That’s a pity as otherwise Xfce4 is very nice: fast, effective, light weight, the interface looks clean and good, Xfce4 has many nice advanced features for power users too etc. In fact, in many ways I like Xfce4 more than Gnome that I usually use at home.
Edited 2007-09-20 21:22
Xfce may be geeky, some features may be hidden, yet because of the minimalism and simplicity of the project you don’t have to dig deep to find solutions.
Of course it may not be friendly enough for a newbie, but for me (let’s assume – someone with medium experience) it is quite easy to arrange it to fit my needs. I can do the same with kde and gnome, but it requires more effort and let’s not forget – resources. All in all it’s very subjective. De gustibus non disputantum est!
Making that feature of dragging & dropping apps from the appfinder to the add launcher dialog clearer and easier to find for new users would be easy. The developers should, for example, just add an info text to the add launcher dialog box, like: “You can drag and drop applications from appfinder here”.
I’ll have to try that next time I get it running. Usually I have to manually add everything when I build it on FreeBSD.
I don’t understand all the fuss over XFCE because their last releases are obviously not that much faster compared to a Gnome installation. There was a time when XFCE was light but now it’s as heavy on your computer as Gnome is, if you configure gnome to prevent the loading of too much crap in the background.
Who cares for the simple code base of XFCE, its far from complete lib wise, compared to QT/kdelibs or all the libs developed for the Gnome platform. Applications are built upon the libs. The libs gives power, the libs makes you build faster an app you would overwise have to write useless, already done by someone else code.
XFCE as a desktop platform is not that much more than vanilla GTK meeting a window manager and a panel so I couldn’t care less about their clean and small code.
… and a terminal and a file manager and an editor and a calendar and a couple more. Please, do investigate the subject better before commenting.
Oh, and ‘vanilla’ GTK ain’t that bad: http://wiki.xfce.org/recommendedapps
xfce is great!
* it allows my brother’s old 128MB IBM laptop to be useful (zenwalk linux wih xfce)
* its light on resources – everyday operations are fast, leaving RAM and CPU for my own applications
* its interface is simple enough with just enough luxuries to be useful. well thought through window manager for example allows me to window-blind windows with a scroll-wheel, scroll wheel the background and you’re on the next virtual desktop. interaction with dbus/hal is now working great with my CDs and USB sticks.
* this is the big one – something about it is so simple and unfussy that it stays out of my way and lets me get on with my work.
for me, gnome and kde are just too big. i don’t need all that functionality. its quicker to load and quick in operation, leaving cpu and ram for my own apps. and its not a fiddle-and-tweak temptation like some desktops!
I started a new job recently as a web dev, the guys there are REALLY knowledgable about Linux and all run highly customised FVWM configs – we’re talking years of tweaking.
For me, being more graphically orientated, that was too much to take in, so I installed Gnome (we’re using Debian Lenny/Testing)
As my Linux dev box was an old PIII at the time, Gnome was horribly slow, so I switched to XFCE.
What a change, what an absolute pleasure.
XFCE provides a clear balance of performance and intuitiveness.
It feels as lightweight as FVWM, yet is as attractive as Gnome.
It’s the perfect desktop for a dev platform.