[Yum-devel] Re: [Bug 207] yumError.py patch submissio
Michael Stenner
mstenner at ece.arizona.edu
Mon Feb 23 17:42:47 UTC 2004
On Mon, Feb 23, 2004 at 09:21:12AM -0500, seth vidal wrote:
> > Have you thought about a forking the tree to c at some point (a few
> > versions from now)? I've been profiling to see where the bottle necks
> > are. I currently don't know squat about python wrappers for c function,
> > but am looking at rewriting and wrapping resolvedeps.
>
> 2. in short, I don't know enough C to program in it and I'm completely
> convinced that writing yum in C would take thousands and thousands of
> more lines of code and would mean completely reimplementing dozens of
> things.
>
> What merits do you see for writing it in C?
As someone who does know C, let me say that I think it would be a
terrible idea to write this in C. It would take vastly more code and
would be vastly more bug-sensitive (because there are whole classes of
new bugs that C allows you to introduce). Realistically, a finite
number of people are willing to devote a finite amount of time to this
project, and I think that time could be better spent if it's in
python. (N lines of code are ~4 times faster to write in python AND
do at least 4 times as much, in my experience)
I would love to get the benefits of C here (speed is the only one I
can think of really), but I don't think it's worth the sizable costs.
Now, I may someday be convinced to write small portions of this in C
and link them with swig or similar, but that only introduces a
different kind of complexity. Then you have 2 languages, which means
that serious developers need to know both (and the connection
mechanism), that build/package/install is more complex, etc.
In short, I'm all for profiling and improving speed, but I just don't
see that effort crossing the threshold to include C.
-Michael
--
Michael D. Stenner mstenner at ece.arizona.edu
ECE Department, the University of Arizona 520-626-1619
1230 E. Speedway Blvd., Tucson, AZ 85721-0104 ECE 524G
More information about the Yum-devel
mailing list