Alexander Larrson (Red Hat), developer and maintainer of gnome-vfs and Nautilus has proposed a plan to replace gnome-vfs. “Having spent the last 4 years as the gnome-vfs maintainer, and even longer as the primary gnome-vfs user (in Nautilus) I’m well aware of the problems it has. I think that we’ve reached a point where the problems in the gnome-vfs architecture and its position in the stack are now ranking as one of the most problematic aspects of the gnome platform, especially considering the enhancements and quality improvements seen in other parts of the platform. So, I think the time has come for a serious look at what gnome-vfs could be.”
…I say “about time”
This is an example of a core deficit of Linux and the OSS community software. With no one really at the wheel, most of the open source os distributions and projects look like design by commitee (which is exactly what they are).
I’ve seen every new framework come and go, and tooted as the “next big thing” at its time. Everytime deep architectural problems are encountered and it all starts from sratch. Without commitment to a solid foundation, no one can ever build software and keep track of all the upcoming technologies, soon to be replaced by newer ones.
Gnome-vfs, Bonobo (remember that?!), kde’s dcop, artsd et al.
When will people commit to ONE BLOODY media architecture, one bloody vfs layer, one bloody printing architecture and such? freedesktop is a lot less than enough.
The problem is not technical, its political. When everyone and his mother can have his say, how can you reach a refined design for OSS software? Eric Raymond bazaar style programming is overly optimistic and simplistic crap (written in the zenith of the web bubble).
It’s an inevitable consequence of open source software. I used to be like you, years ago; however, as soon as you simply accept the fact that this shortcoming exists, it becomes a whole lot less of a problem.
As for Linux: standardise yourself and your machines on a single distribution, get to know it really well, and follow its developemt as if no other distribution exists. This way, you won’t be bothered by all the different pices of software you can select for the same task: if you have a good distro, it will have done this for you.
Every now and then, you do need to check up on the competition, and see if they have anything to offer that is of interest to you. Then, you can decide to switch, or to see if those things aavailable to your preferred distro via the community or 3rd parties, or, not unimportant, if your distro of choice has a roadmap including these things.
It’s what I do with Ubuntu. That’s my distro of choice, but every now and then, I try out others to see if they’re better.
Gnome-vfs, Bonobo (remember that?!), kde’s dcop, artsd et al.
I feel your pain a bit. DCOP hasn’t gone in KDE though, and the move to D-BUS has been taken simply because it’s better all round. Code will work in the same way mostly though, but it’s not something people want to have happen on a regular basis. It has good examples of good stable technology like KParts and IO-Slaves that will be around for some time to come.
I daresay Microsoft and Apple have dumped an awful lot of their code between versions, but it’s just that open source projects wash this in public. It tends to look far worse than it probably is.
One thing I don’t like though is coming up with new stuff in response to fads. Bonobo is one of them, which was supposed to use the CORBA standard in response to COM, and now we have the .Net fad in many ways.
Then, the fact that the architecture is not written in stone is one of the weapons that allows the Linux desktop environment to improve in leaps and bounds unlike Other Systems which are bound strongly by their decisions, even if they were mistaken.
So, is Bonobo shit? Hey, let’s dump it. So, have we got this neat new vector graphics layer that allows all sorts of new suff? Then, let’s not wait for the future Linux Vision (TM): use it NOW. Is Gnome VFS made obsolete by FUSE? Then, bag it!
We might never have a rock-stable inmutable platform, but what we’ve got gets better by the day. New stuff such as Cairo, AIGLX, XGL, FUSE, Gstreamer, Mono, Dbus, Phonon, Beagle, Gnomeprint and so on enter the ecosystem continually, WITHOUT DISRUPTION, and the least fit components are ejected.
So we’ve got Linux on the desktop NOW, and we will have an even BETTER Linux on the desktop TOMORROW. Had, for example, all of Gnome’s infrastructure been fixed as it was at release 2.0, or KDE at 3.0, it would be a lot worse that it is now.
A holistic approach where everything is decided previously to an in-step implementation and then frozen sure has it’s advantages, but a) It is impossible to achieve in such a diverse ecosystem as that of free software, and b) watch the birthing pains of that Other System to see that it has its own set of disadvantages, too.
This is an example of a core deficit of Linux and the OSS community software. With no one really at the wheel, most of the open source os distributions and projects look like design by commitee (which is exactly what they are).
I’ve seen every new framework come and go, and tooted as the “next big thing” at its time. Everytime deep architectural problems are encountered and it all starts from sratch. Without commitment to a solid foundation, no one can ever build software and keep track of all the upcoming technologies, soon to be replaced by newer ones.
What you’re arguing is a weakness in the linux desktop is the very thing many people see as it’s biggest strength. Linux should never be constrained to fit the ideas and constraints of any one group of developers, individuals or organizations at the expense of others.
Very often people try to apply the existing software development paradigms used by conventional software companies to OSS, and indeed one of the biggest reasons (IMHO) for the lack of linux desktop adoption is the belief many hold that it simply needs to be like Windows or as good as Windows. There’s a segment of the community that believes everyone is as desperate to drop Windows as they were, and therefore people will jump on linux the first chance they get. That’s not the case, nor will it ever be the case with the current approach.
Linux as a desktop platform must offer more than Windows does, even if only in certain key areas, if it’s going to become a truly viable alternative for consideration. As it is with linux development itself; if standards are going to become adopted they must offer something better for the community of users itself, otherwise they’ll keep sticking with what works or developing their own interpretations. A necessary part of this approach sometimes involves thinking outside the box, trying new things and tearing down to rebuild.
Deciding that we should have an arbitray set of standards and focus all the community’s development in those to create a viable desktop alternative simply won’t work, despite the logic behind it. The standards should must draw the developers and users if they are to succeed.
So until then, we will wind up with a smorgasbord of different standards and approaches until finally things start falling into place and standards and technologies receive adoption on merit and ability rather than group consensus (which is almost impossible). Natural selection, as it were. I’m quite happy with that approach, I’m not an anti-Microsoft zealot who wants to see linux wipe Microsoft off the face of the earth or consider this a life and death struggle. I just want choice in my platform and how it works.
Besides, it’s not as bad as it seems. Relatively speaking, desktop linux is still in it’s infancy. It’s really advanced as a viable alternative over the last few years and it’s going through developmental puberty right now where it’s trying new things, trying to find an identiy, and being slightly rebellious. It’s akward and it’s clumsy and it’s voice is cracking, but it’s growing and maturing more and more every day even if it doesn’t seem like it.
I look at the upcoming KDE 4.0 as an example, not to hijack this thread but simply because I’ve been following the development. The KDE team has taken a mature approach to development, with a bottom-up approach that not only addresses current requirements but tries to anticipate future ones. Standards are being put in place, frameworks are being developed more with an eye on scalability and extensibility rather than fitting with the current application portfolio. The old method of simply patching new functionality and throwing it in the mix is being thrown out the door, KDE 4.0 and beyond should be more structured and intelligent in it’s design.
And this approach isn’t unique to KDE, other projects are taking an introspective approach and re-evaluating future strategies. Why shouldn’t Gnome as well? They’re learning from past mistakes and building upon what has been successful. There’s collaboration even when there’s competition. Things are evolving naturally, the way they should, free from artifical influence. Even if it means a little chaos for the short term, it ensures long term strength and viability as these things shake out.
So I’m quite content to have multiple architectures, frameworks, standards and applications to choose from and will continue to select what works best for me. The moment I have to allow Novell, or Red Hat, or any other group or organization decide arbitrarily what I must use, rather than what I can use, in the name of some arbitrary holy war with Vista, I’ll walk away because at that moment linux will have about as little to offer me as Vista will and I’ll be living in someone else’s vision, not my own.
Maybe I’m just too idealistic in believing that the constant shakeout will ultimately lead to a stronger desktop, but at the same time I’m seeing evidence of it so I’ll wait, watch, learn and enjoy what I have today while anticipating where it will go tomorrow. I’m quite enjoying the ride so far.
Anyways, my 2c.
When will people commit to ONE BLOODY media architecture, one bloody vfs layer, one bloody printing architecture and such? freedesktop is a lot less than enough.
Thats just the thing. We don’t want one bloody media architecture, we want one clean one, with no blood!
Seriously, gnome VFS is an excellent VFS, for its day. I still believe it is good compared to a lot of the others around. KDE might have a better one then it, but Windows and Mac both don’t, and Gnome is going to have one utilizing the newest and best technologies when this is completed, stuff KDE, Mac, and Windows didn’t have when they were developing theres. Every once in a while, a clean slate is the best way to go. Microsoft took that approach for the networking stack in Vista. Does that mean no Windows on the desktop anytime soon? Hell no. The old networking stack works, it gets the job done, but it was less then ideal and isn’t going to lead to the ideal user interaction. Likewise, the same exact is true regarding gnome-vfs. The old vfs infrastructure gets the job done, its currently working, however with the latest, newest, and best technologies out there today, it doesn’t allow the level of polish, user integration, performance, etc. that they can offer, but it currently isn’t restricting functionality offered and isn’t a blocker to Linux on the desktop.
Your little rant is completely off-base and unwarranted. Nobody is talking about creating an alternate GNOME-VFS. They’re talking about creating a replacement GNOME-VFS. A new generation of the VFS API, just as Avalon is a new generation of the Windows GUI API, just as XNA is a new generation of Direct X, etc, etc. Sometimes, APIs are determined to be useless and deprecated. Nobody uses Bonobo anymore, just as nobody uses OLE anymore on Windows.
Your impression of the organization of GNOME is completely off. GNOME does have a strong central organization, and that organization is pushing towards refining the architecture. That’s why Pango replaced to old GTK+ text API, why Cairo replaced GDK’s drawing API, why the HIG was uniformly applied to GNOME 2.x apps, why GStreamer replaced ESD, etc. The central organization is pushing and guiding the evolution of the system, just the same as on OS X or Windows.
Plus, I don’t see how this has anything to do with “Linux on the desktop”. Neither Windows nor OS X have built-in frameworks comparing to even the GNOME-VFS, so how is GNOME-VFS holding up Linux on the desktop?
This is an example of a core deficit of Linux and the OSS community software.
On the contrary,you will see that what is going to be sustituted will get a fresh and working successor and more important it will be delivered instead of scrapped.I tend to call it improvement.
“Gnome-vfs, Bonobo (remember that?!), kde’s dcop, artsd et al.”
COM, DCOM, ActiveX, Windows 3.11, Win32s, Win98, XP et al.
When will MS create the one true OS and API that will stand the test of time like the rocks of stonehenge?
Clearly Windows isn’t ready for the desktop.
A lot of programs written for DOS, Windows 3, Windows 95 will still run today on XP.
“This is an example of a core deficit of Linux and the OSS community software. With no one really at the wheel, most of the open source os distributions and projects look like design by commitee (which is exactly what they are).”
You can either view it as deficiency or efficiency. -You- choose to view it as a deficiency.
“I’ve seen every new framework come and go, and tooted as the “next big thing” at its time. Everytime deep architectural problems are encountered and it all starts from sratch. Without commitment to a solid foundation, no one
can ever build software and keep track of all the upcoming technologies, soon to be replaced by newer ones.”
… And each new version is better then the previous one or it’ll be left to die.
Alsa is -much- better then OSS.
udev is -much- better then devfs.
OSS is an ever evolving eco-system, much like nature’s own evolution process. Don’t like it? Build something better.
“When will people commit to ONE BLOODY media architecture, one bloody vfs layer, one bloody printing architecture and such? freedesktop is a lot less than enough.”
Why stop at the media architecture level? Who needs 4 major desktop environments? 16 editors? 100 media player? Why not build one DE, one editor and one media player?
What makes the governing body any better then natural selection? If you like the idea of having no selection and having a governing body decide on what you should install and how, I’d suggest you stick to Windows.
For better or worse, Microsoft gets to make the call for you.
“The problem is not technical, its political. When everyone and his mother can have his say, how can you reach a refined design for OSS software? Eric Raymond bazaar style programming is overly optimistic and simplistic crap (written in the zenith of the web bubble).
In the OSS world people contribute their own time to develop OSS projects and as a result, the same people get to do what-ever they want.
In return, the OSS world gives -You- the right to decide which Distro/DE/Editor/MPlayer/etc -you- want to use.
As I said, you seem to misunderstand what OSS is all about.
If you dislike the OSS model so much, choose differently: Use Microsoft instead.
– Gilboa
Why write Gnome-VFS when we alread have FUSE. Which, may I point out, follows the standard POSIX schematics and will allow any program to be used with no modification?
What is needed is a Gnome-FUSE application to handle the FUSE mounting and provide the filesystems. However, we don’t need yet another VFS layer. We have one in the kernel.
As Alex pointed out in his posting VFS layers modeled after the POSIX model – as GNOME-VFS and FUSE are – do not allow the high level of user experience Alex wants.
He for instance shows the example of atomically saving a document on a WebDAV/Subversion share: On POSIX systems you write to a temp file and the do the rename. Would result in one artifical revision containing an artificial file when writing to the WebDAV share. Suboptimal.
Or think of coping a remote file. In current model you’d have to fetch the file with maybe 768 kbit/s and then completely write it back with 128 kbit/s. What a waste of bandwith and time. In the model Alex envisions the VFS backend would provide some kind special interface and the would take place on the server side. Quick and clean.
Another problems cover seeking and authentication.
Well, but fortunatly Alex also knows about FUSE and the need to support applications not able or willing to use the new VFS layer. Therefore his new VFS deamon actually shall export some FUSE file system and return paths to this file system when the POSIX file API of for instance GtkFileChooser is used.
So I am looking forward to this project and strongly hope it will reach its goals.
The thought that crossed my mind is, that FUSE is Linux only and Gnome does not want to depend on something on just 1 architecture. But than I came across http://fuse4bsd.creo.hu/ . No idea how mature it is, but I fear that anything “non-standard” wouldn’t be enough anyway to depend on …
The curse of portable software. But that’s the price to pay, if you want to be free (as in not chained to some provider). But how free can you be actually?
Well, FUSE is no rocket science: It’s just a char device forwarding some kernel requests to some user-space program. Should be easy to implement for any FOSS operating system. As communication with that device is wrapped by some user-space library FUSE implementations even should be portable among operating systems, so providing legacy apps access via FUSE sounds quite reasonable for me.
Edit: BTW, the kernel portion of FUSE for Linux 2.6.16 covers exactly 4152 lines (including headers and comments).
Edited 2006-09-24 19:40
“that FUSE is Linux only”
False statement. See the following page:
http://fuse4bsd.creo.hu/
Why write Gnome-VFS when we alread have FUSE. Which, may I point out, follows the standard POSIX schematics and will allow any program to be used with no modification?
Did you read the part where many protocols cannot efficiently support POSIX semantics?
If you ask me about the No1 advantage from KDE compared to GNOME i would say it’s the network transparency. It’s great how all KDE apps can access all kind of network devices and how i can read/write files from a network device opened with konqueror with every app (even non kde apps)!
GNOME needs a gnome-vfs which is implemented in a gnome-file-chooser so that hackers just have to use the gnome-file-chooser and don’t have to write extra code to enable gnome-vfs in every single app. So that every GNOME app will automatically have all the power of gnome-vfs like the KDE apps on KDE. Also it must be possible to edit files displayed with nautilus with any app and not only with apps which have gnome-vfs implemented.
If people propose FUSE i would answere it with a clear NO!
GNOME shouldn’t depend on a particular kernel. I want to use GNOME with all variations of the GNU system, with BSD systems and maybe with systems like OpenSolaris. GNOME needs a virtual file system which can go with GNOME wherever GNOME goes.
Every so often one might feel humbled, or ever so slightly intimidated by the amount of forethought and pure brain power which goes into the design of open source (or ok then, free- for the procrastinators) software.
At such times, one’s response might be similar to the occasion when, watching a football game in absolute rapture and wonder at the pure genius exhibited by a player, may only shout “Go, man, Go!”
This is such a time
Good article
Edited 2006-09-24 20:18
How tied to QT is KIO slaves? Assuming it’s as good as it’s protractors often insist it is, and doesn’t have a QT dependency, would it not be an ideal replacement for GVFS?
You basically need to install smb4k (and all that comes with it ) to get anything done with samba shares.
gnome works for me now but I will certainly take a new and improved vfs…or stick with my old one
ahhh choice is grand!
The most interesting piece:
We will also write a single gnome-vfs backend that allows access to
all the glib vfs shares by using a uri like gvfs:///XXX that just maps
to //.network/XXX. We can also implement a similar backend for kio so
that kde applications can read and write to the shares.
Finally, the thinking is straight. From the point of view of KDE user – the whole gvfs and the file chooser thing was (well, still is) just retarded.
It is possible to completely overwrite the GTK FileChooser and the gvfs with things like KGTK (http://kde-apps.org/content/show.php?content=36077) but…
This is nothing but very good move for Gnome. If well-separated from the UI, this may even have a shot at cross-desktop (semi-)standard base and may damage Portland’s reason for existence.
> Gnome-vfs, Bonobo (remember that?!),
> kde’s dcop, artsd et al.
Adding DCOP to this list is completely inappropriate. Actually DCOP which has been added to KDE’s architecture in 2000 has been a tremendous success:
Not only do all the KDE applications that are part of the official packages use DCOP excessively but it’s also needed and common in use for lots of other applications on kde-apps.org. DCOP itself has slightly been enhanced since it has been invented and remained largely unchanged since it found its way into the desktop architecture.
If it wasn’t for the added benefit of cross desktop availability KDE would have probably stayed with DCOP for KDE 4.
So I can play with wobbly windows but I can’t edit a file on a Samba share in GNOME?
Doh!
So I can play with wobbly windows but I can’t edit a file on a Samba share in GNOME?
Of course you can: Nautilus provides browsing of Samba shares, GNOME-VFS aware programs like GEdit or OpenOffice.org can read and write to the share without the need of mounting via smbfs – but the design of GNOME-VFS (which dates back to 1999) has some serious issues resulting in hackish and bogous code. Additionally you must explicitly access your files via GNOME-VFS instead of using stdio or whatever streams. Quite obvious that this has to be changed. Alex decided that now is the right moment for that change.
Edited 2006-09-25 12:21
Yes, let the X and compiz hackers write your vfs. Hello mrs dataloss! Good morning mr crashdump!
After all a developer is a developer is a developer. You can easily interchange them between any kind of projects, can you?
Edited 2006-09-25 12:27
Well I haven’t played with wobbly windows but I do have plenty of network shares and gnome is my DE of choice. I keep my music on a network share and have no trouble using them. I personally have run into more trouble trying to get to the network and accessing the shares using KDE than I do gnome. But that may be my shortcoming and not KDE.
Of course I don’t think it would kill anyone learn how to mount a network share manually either.