← Back to team overview

kicad-developers team mailing list archive

Re: Concerns about clearing disagreements before committing.


On 11/22/2011 08:12 AM, Brian F. G. Bidulock wrote:
> Lorenzo,
> Well, this is a good example for you.  Go look at what has to be
> changed to change the trig functions to use, errr, libm!  They
> are called from all over hades' half-acre, always from outside
> the object, always directly accessing members of the objects,
> some places applying one round-off; some places, another; some
> places making one assumption about round-off; another place,
> another assumption; always outside the object.
> With a proper OO design, these trig functions would have been
> hidden inside the class implementation instead of being strewn
> everywhere.  First impression, start with changing every mPoS
> .x, .y direct access to a function on the object (no, not setX(),
> getX(), nonsense, but move(d,a)).  To see what it takes to do 
> that, just try making x and y and mPos private and give a go at
> compiling.
> To do the least little thing, you have to get rid of the legacy
> first.  It is obvious from the code.  So, my question, under
> the current "managmement", why has this not happenned?  For so
> many years.  My only conclusion is that the current "management"
> is incapable of doing it for one reason or another.
> --brian

One of the best ways to get started actually contributing to KiCad is to offer byte sized
patches which concentrate on one or two public member fields, and provides accessors for
these, making the fields protected or private.  I cannot tell you how many of these kinds
of patches that Wayne and I have made.  I did scores of them in 2008.  Wayne has done more
than that in the last two years.

This procedure, if continued by enough man-hours, would transition KiCad more in the
direction of an object oriented design.  We remember that KiCad was originally C code not
C++.  So it has been in evolution for the last several years, all the while churning out
boards that we all benefit from.

Current "management" is incapable of doing this because current management is not paid
enough to work on this project full time.  To help with this evolution, the door is open
to more volunteers.  The product of the work should be reasonably sized patches,
addressing one or two fields at a time.  Even doing this, these are sometimes thousand
line patches.

No disagreement on the need.  Just in attitude, and willingness to contribute in a way
that is appropriate.


Follow ups