Sunday, April 10, 2005

the stupidity of dconf

Waldo Bastian wants it. Havoc Pennington wants it. Scott Wheeler wants it. same for a bunch of other people. so whatever it is, it must be good, right? in this case i think the answer is "yes" and "no".

what i'm talking about is "dconf", which is currently vapourware. the idea of dconf is to create the One True Unix Config File Format. that's a cool idea and something that is badly needed. but i think that the discussion on xdg is a very good example of how messed up FreeDesktop.org is becoming.

there are two good kinds of standards: ones that document successes that already exist and were, really, already "standard" before being canonized as such, and ones that are such great technologies that people run to adopt them.

in the case of dconf, i fear that it will reflect neither of the above. certain people want a unified configuration system, and don't really care about what it really ends up looking like. they just want SOMEthing, anything. who cares what it is as long as it unified, right? lots of people.

for example, everyone who isn't afflicted by the problems of configuration fragmentation. or those who have additional needs and wants from a configuration system beyond "the same everywhere". to all those people on the xdg list who behave like standardization is obviously the most important thing imaginable: not everyone is like you! and those who aren't, are not necessarily wrong! wow! diversity!

now, where is the incentive to change for the people i mentioned in the last paragraph if all standardization does is create a standard and nothing more? it just ends up feeling to these people like stagnation and the opposite of innovation. and i don't blame them, because it is: it's boring and it slows down our progress.

(as an aside: it also doesn't help that there are certain idiots amongst us who feel that FreeDesktop.org is a great way to canonize their pet project or to somehow push their desktop's technologies "down the stack" so as to force them down other people's throats. these people make it harder for those who do have the right intentions. honestly, i wish these people would go find a new life flipping burgers or watching over the kids at public swimming pools because they'd do a lot less political damage to things i care about if they were.)

back to dconf, though, here's the recipe for getting buy in: people need to realize that a new configuration system should do more and be better than what's there. so actually talk to the people making these systems. do not say, "well, they should be here on xdg if they cared!" because that is equivalent to saying, "we're the right game in town, play with us or else you don't count." and that's a great way to ensure you fail to get buy in. it's also a great way to appear like a giant walking dick, since that would be an accurate description.

next, be ready to scrap everyone's configuration systems for something newer and better. here's a clue: gconf sucks. kconfig sucks. so does everyone else's. they each suck in their own way. let's not replicate their suckiness by blessing one of them, not even by "basing the standard" off of one of them. we're going to cause a lot of work by changing configuration systems anyways, so let's do it right. this has the nice political side effect of not making it feel like "project X is being forced to adopt project Y's config system because someone peed on it and called it holy". on other words, we'll get better buy in and we'll get better technology. it's not as convenient for the Standardizers but creating technology isn't supposed to be easy, that's not why we do it.

i dare say that if the people who are currently myopically looking at what dconf could be poked their head up and looked around they might take notice of things like Samba 4's new configuration back end. i know Ian Geiser has, and i know the Samba people are all excited about being able to work with others on it. he's working to see if KConfig would be based on it for KDE 4. wow! real research and development, not just pure standardization wanking, even though it would create standardization between Samba and KDE!

now hold on, wouldn't it be great if the desktop standards also reached out into the server world? and don't servers also do configuration? and might not someone like Samba have a start to a good system given the challenges they face with configuration? and wouldn't it maybe, just maybe, make sense to see what others who are interested in innovation as opposed to standardization are doing right now?

would it be great if those who were interested in standardization did so by adopting the most promising work of the innovators as opposed to struggling with them at best and just ignoring them at worst?

but that would require that FreeDesktop.org start behaving like a healthy system with a clear mandate to help with standardization again as opposed to the self-important disappointment its on the way to becoming. and for those who haven't been hit by the clue stick, let me make a pinata out of you: FD.o should not be about software development.

so here's my challenge to Havoc and Waldo (i'll pick on them because i like them and feel they are moral leaders in their respective camps with good heads on their shoulders): dare to make dconf innovate and dare to harness people's efforts that aren't yours. try and actually standardize in a way that won't require tons of convincing and forcing. if your emphasis truly is standardization (which i think it is) versus agenda pushing (which it appears to be to some), then let's do this one right. let's not replicate DBUS and the mime type standardization here ok?

configuration is too important to get wrong and it's touches too many people too deeply to not have global buy in for this. and we can achieve that. it just means realizing what your real goals are and what the goals of others are, too.

7 comments:

BlueBird said...

Well, I agree with your speech, but reading the discussion about gconf I saw:
- lot of poeple discussing many ideas both strange, maybe good, maybe not
- Waldo saying once or twice that the config system should be as least as good as the one for KDE and allow a migration
- Havoc saying that a config system should take into account his idea on a config system gained from the experience of gconf and should be better.

So there is no need to challenge them. The other people discussing over there have to understand.

XDG is becoming like the kernel ml. People are there because it is going to give a lot of exposure to a project, not [necessarily] because they have a good helpful project.

segedunum said...

I have to say, I agree - but I don't really want to.

My ears pricked up when you mentioned "the idea of dconf is to create the One True Unix Config File Format". Do people have any idea what that actually means? It means buy-in from every single piece of software and software project available on a Unix system, and it especially means heavy buy-in in the server world. Not to be disrespectful, but the desktop world is small-fry compared to the server world and you need buy-in from them. From what (admittedly limited) amount I've seen I haven't seen this addressed at all. If they don't talk to these people (and no, "they should join the mailing list" doesn't count), then any proposed Unix config system is just pissing in the wind. It needs political skills and a level of trust that no one around Freedesktop has, quite frankly. A standard is one that actually has to get used i.e. not CORBA. The Samba 4 stuff has looked interesting, and if they're not looking at this and asking these people.....well......

I have worried a bit about Freedesktop. Although it is so very badly needed, it is panning out in a way I hoped it wouldn't. People are pushing their own agendas under the banner of politically correct standardisation. In the case of something like DBUS, people from Novell/Suse are pushing it simply because they want to somehow unify their Gnome/KDE political mess regardless of whether it is a good idea for KDE, and indeed, Gnome. I find it extremely difficult to believe KDE will switch completely to DBUS for KDE 4. Replacing a messaging system with another is a huge undertaking. Replacing one system with another that does just about the same thing is pointless, even if it is marginally better. Just ask Microsoft. They've had COM for almost fifteen years, and they're not going to replace it with anything .Net related any time soon.

Maybe someone should just go out and do it and through any success (and open source software) make their system and implementation a standard. Maybe Microsoft is right?! One could argue that people should be concentrating on innovation that matters, rather than re-writing YACS (Yet Another Config System). Would it really get anyone any further forward?

Aaron J. Seigo said...

bluebird: yes, i trust Waldo and Havoc more than 99% of the other people there. but i am completely unconvinced at this point that whatever comes out won't favour simple standardization over providing what we really need.

while there are a lot of people on that last that are ignorable, i believe that the rest of FD.o is slowly becoming myopic around the concept of standardization.

note that neither Waldo's nor Havoc's comments ruled out simply bolting on a few features to gconf and ramming that through the process. that isn't what we need. in fact, KDE will probably just walk away from that and then what do you have?

btw, you saying "the discussion about gconf I saw" rather than "dconf" pretty much says it all.

Rodrigo Couto said...

My humble opinion is that JCP.o (Java Community Process) is a model that FD.o should aspire to follow...

Tim said...

swimming pools
swimming poolsswimming poolsswimming poolsswimming poolsswimming pools

mrintegrity said...

whats with the licensing of dconf now? it says "all rights reserved" and that its "not currently an open source project" thats a great start to getting a standard system implemented with input from the concerned parties isn't it? NOT

andre klapper said...

For your interest, a public dconf git repository now exists at http://git.gnome.org/cgit/dconf/ .