Archive for October, 2003

(N v S) v (N + S)

Friday, October 31st, 2003

I think you’re saying I am glossing the implementation phase.

I’m saying most of GNOME and free software development culture in general are glossing the conceptualization (aka idea generation, aka planning, aka big-D Design) phase.

They are both substantial, hard and, in the context of building *good* original software, both essential.

If you skip implementation you end up with NO software. If you skip conceptualization you end up with crappy software (or a clone, which is better than crappy software, but if Linux takes over the world and can only clone, then software will stop evolving and I will shoot myself… you can’t wake up one day and suddenly start inventing after a decade of copying). Unfortunately people seem to fall into two categories: either they skip conceptualization (pragmatists, Meyers-Briggs S’s) or they skip implementation (dreamers, Meyers-Briggs N’s). The people who have programmed the software stack we rely upon and are hence respected have, of course, tended to be pragmatists. The dominant culture that grew out of this has rightfully observed that crappy is better than nothing. Unfortunately, they have fallaciously extended this argument and decided that implementation is better than conceptualization.

Given a choice between one or the other, that is true. But they’re not mutually exclusive. To generate software that’s better than the status quo you NEED both… and both are difficult and substantial tasks that you need to work hard at.

With a big project that’s composed of lots of people, you can, in theory, have both. But in ecological terms, this does not often happen. Most open source projects start as a very small group of people, and given some success they grow larger. Unfortunately, people tend to hit it off with people who are “like them” so the dreamers tend to only work with dreamers, and the pragmatists tend to only work with pragmatists. Dreamer groups always die young because of course nothing is worse than crappy. Pragmatist groups like GNOME, by virtue of observing the failures of dreamers, develop a culture that is HOSTILE toward dreamers (and the only “dreamers” who stick around as a result are those that don’t have anything better to do than get shot down… namely loser dreamers… which only reinforces the feeling of the pragmatists that dreamers are a waste of air).

Re: Vision

Friday, October 31st, 2003

Havoc: “if you have an idea” to me is glossing over the developing an idea phase as badly as I gloss over the implementation phase. ;-)

The people who do the best implementation are not necessarily those who do the best ideas. In fact, they’re often not. We can’t expect to develop a culture of implementation relying on cloning for half a decade, and then magically once we’ve got market share based on our key feature (and we do agree that freedom is at the core of what we’re doing… though I would go off and shoot myself if we get freedom and desktops stop making progress entirely ;-) turn on the invention spigot. These are things that need cultivating…

Responses about vision

Wednesday, October 29th, 2003

Havoc: The point is not what the Apollo program was able to do, but to contrast the Apollo program with the expenditures on “modern NASA” which is only 10% less funded (accounting for inflation) and does a lot less. Its an anecdote, the point doesn’t really rise and fall on NASA, its just meant to illustrate on a grandiose scale ;-)

I’m not arguing for haste, I’m arguing for direction. Linux 2.0 was a laughable toy, but without the direction provided by copying the features of other Unix systems, Linux 2.6 could not exist. Maybe they did it better, maybe they didn’t, but in terms of core features, its the same thing. The cool things happened in a thousand steps, but a thousand steps in various directions will not get you anywhere particularly cool.

So people are making the X server support smooth 3D graphics and in the future we’ll implement the next generation UI on top of it. But we have no idea what the next generation UI is, so how do you know that supporting smooth 3D graphics is needed for it? We only know because we have seen that those are the components Apple used to make their next generation UI. Our only roadmap right now is cloning. And in UIs (perhaps unlike kernels) I believe that the cloner is pretty much doomed to greater crappiness, and that at least a release behind.

Firstly, that there are a hundred people sitting around saying “we should do something cool” doesn’t mean there are a hundred people sitting around proposing genuinely good things to do. Secondly, good ideas are NOT cheap, and ideas don’t just magically happen. Making good ideas takes work, research, lots of reflection, argument, etc. As I’ve said before, mailing lists are create for the reality-check phase of idea generation, and terrible for the brainstorming phase.

That there are already thousands of *cough* enthusiasts suggesting ideas (or worse, suggesting that “something cool should happen”) does not mean that we should avoid developing good ideas in favour of just sticking our nose to the grindstone (in the same way as the number of usability enthusiasts does not reduce the need for good UI design in GNOME). Avoiding idea generation because the unwashed masses love to engage in it is reactionary.

An straw man interpretation of what you are saying is basically: “stop worrying about ideas and get back to the REAL work”. Behind almost every important and useful product was not just an idea, but ideas. And they weren’t just selected from the myriad ideas floating around the world, they were developed… they were nurtured… they competed with each other… etc. This is important and real work. Knowing what you’re building is pretty important, and it takes real work to figure that out. GNOME has (perhaps in reaction to avoiding being like the l0z3rz) imo strayed way too much toward the “shut up and build!” side of things. Yes, that’s PART of what makes things get done, but its not all of it.

Christian: “There needs to be something to build upon before the grand vision stage is plausible”… which interestingly enough is exactly how the last decade of NASA expenditures is justified. They say they are building “generic space tools” that could be used “to build anything”. But unfortunately they’ve done much and accomplished relatively little (even in the tool expansion department). The blueprint comes first, the foundation comes second, and interior decorating can come third (though in reality I think this is often done between blueprint and building, it doesn’t necessarily have to be).

I think people assume we are talking interior decorating. You know, you build all the real manly libraries you need to do any sort of computing work, and then you build your little GUI as wall paper atop that. The thing is that the particulars of the libraries and the base system highly constrain the interface… not just in terms of what’s possible technically, but what developers will actually write (for example, the HIG is oft criticized as being ineffective because some of the HIG suggestions for controls require more lines-of-code).

HIG btw is NOT a grand vision. HIG is reflective not visionary for the most part. The several little changes we’ve made that are not reflective of GNOME but instead improve the status quo are always sources of controversy too.

Murray: finding a (good) direction won’t be a result of figuring out the average of all the “direction vectors” that GNOME developers want to move in. This is bound to be some composite of “what windows does” and “what OS/X does”. Long term goals of use in the sort of way I’m thinking have not even been posted to gnome planet blogs, to my knowledge. A goal in the way I’m using the word is NOT “lets have a cool configuration database”, that’s a task (a huge one). A goal is “Lets go to the moon” or “Lets make a way for mass installations of GNOME to be remotely admin-able” (and this would really be a sub-sub-goal of a much larger picture). Most of the good goals are going to take serious thinking, I don’t think people have concretely formed them yet. And yes, most of them should be human-centered “interface”/”interaction” (even if that’s not GUI) goals.