On Sat, Jan 31, 2009 at 11:32 AM, Brian Matherly <brian@gramps-project.org> wrote:
> GRAMPS is changing and evolving, and it has a ways to go
> to be a perfect UI, but that will always be true.
> You don't sound very happy about the state of GRAMPS...

I am happy with the state of GRAMPS. I'm also very excited about the speed at which it is changing. We have some key developers who are able to crank out an incredible amount of code in a short amount of time. I wish I were one of them.

What concerns me is the direction I see the code going. Function and file sizes are growing at an astounding rate. And it isn't good for the community.

We have a responsibility to make sure that the code is readable, scalable and maintainable.

We have a responsibility to make sure that files do not get to be 3193 lines long (_ReportUtils.py).

We have a responsibility to make sure that functions are not 172 lines long (WebCal.py - calendar_build).

We have a responsibility to make sure that functions don't take in 9 parameters (WebCal.py - calendar_common).

We have a responsibility to make sure that file, class, function and variable names properly describe the abstractions they are representing.

We have a responsibility to make sure that abstractions and interfaces are clearly defined and documented so that when other people have to use them they don't have to reverse engineer our code.

We need people who can add features and we need people who can enhance the architecture in order to better support the new features. Right now, it looks to be like the feature people are outpacing the architecture people by about 4 to 1.

So, while I am happy with the state of Gramps, I am concerned with where it is going and I feel a responsibility to say something.

Not that I would ever attempt to mandate this, but in my mind it would be prudent for us to cease all new feature development for 3.1 and all of us focus on refactoring the code. I think we owe it to the community and to the future developers of Gramps.

Somebody please respond.

I'll say it first "I agree with Brian" :) In my experience with open source (and life) there are periods of wild growth and exploration, followed by trimming, and re-organization. I think we are finishing a period of wild growth (3.1). Next we can stand back and see what works, then regroup, cut, rewrite, and prune (3.2). We need both stages to be a healthy, living project.

I think it is time for a mandate though: give us a week (or so) to add or remove what we personally have as goals to get into 3.1, then for the rest of Feb, let's all work together to add that spit polish and only debug/fix. Personally, I'm done, but there might be others in the middle of something.

I've started my personal priority list on my wiki page:


Not that I can do all that is on my priority list... but those are the ones I'd like to see done.



This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
Gramps-devel mailing list