[Gegl-developer] a hard decsion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have been working pretty hard to get a handle on all the changes that need to be made in order to move gegl to the structure that you and I have (mostly) agreed on.

There are many changes that run deep into gegl. Changes that require rethinking of several subsystems at the same time. At some point, it become easier to start nearly from scratch. I think gegl has reached that point.

I am concerned that you may think this idea is wacky (read: stupid). If so, you may never have reached this sentance before you stopped reading. If you have made it this far, please read a little further. I will go into detail about why I think this is a good plan.

It was a mistake to not design tiling, caching, and threading into the system from the start. Adding these systems require changes to nearly every part of gegl.

It was also a mistake to assume that only one color model would exsist in the tree at any one time. This also requires changes in many parts of gegl.

Color conversion is a hard problem. Doing it right requires designing the system for it. While some consideration in this direction was made. There was a lack of research into the topic that caused the considerations to be insufficient. My last point about only one color model is an example of this. It is my belief that adding Color conversion after the fact would require significant changes to gegl.

There are several significant changes to the class structure of gegl that even you suggest is "the right idea." Changing the class structure this much is equivlent to redesigning whole subsystems of gegl.

I do not think that gegl should be thrown out entirely. There are some good ideas in there that can and should be salvaged. If fact I don't really think of it as starting over per say, because you are not starting from ground zero. There is a lot I have learned from gegl and I think there is a lot I can continue to learn. It is just that I feel that rewriting gegl from near-scratch would be easier than putting in all the changes that need to be added after the fact.

This is all motivated by my frustration. There are several things on the todo list that interest me. Tiling, cacheing, threading, color conversion are all topics that I have been spending all my free time and resources researching. I even think I have some good ideas about how to do it. However, once I start to figure out how to put those ideas into effect in gegl, I end up pounding my head as I realize that there are huge parts I need to change. What happens is that I have to understand the current system, in order to change things. However, every time I look at a part of the system, I discover that there is yet another chunk that needs to be thrown out before I can really put in place these major subsystem in a way I feel meets the needs of The GIMP.

While it is difficult to ask people to throw away so much, I really want this to be done right the first time. It needs to be done right so that Gimp 2.0 doesn't suffer under the design flaws of gegl (after all, suffering under design flaws the _the_ reason why I am told that Gimp 2.0 was to start from scratch).


I am already doing what I can to further this goal. I am posting my design on this list as soon as I come up with it. Asking for your input and revising and revising and revising. I am doing lots of research. I am looking at gegl as it is, and gegl as it is wanted to be, and figuring out what things need to change.

I won't feel ready to write a line of shiny new gegl until I feel that enough of the design is in place. Enough design will be in place when everyone here (Which, from what I have figured out, means you and me Calvin) is satisfied with how things are to be done at a fairly fine grained level, and that we have determined which systems can be implemented that don't depend on other systems that are not in place yet.

I also feel that no decsion should be made without discussion, so every idea I have about how I think things should be done, will be posted to this list, with the expectation that it will be criticized, and thus improved.

Others may have noticed that I write a lot. I will continue to write a lot. I have a lot of ideas about the best design approch. I will put these out in the open and people will criticize. This letter is one of these ideas.

please criticize constructivly.

--
Dan


[Index of Archives]     [Yosemite News]     [Yosemite Photos]     [gtk]     [GIMP Users]     [KDE]     [Gimp's Home]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux