> 
> 3) I think the issue of crackpots and bad code dragging things down is
> not much of  a problem. The reason is that it takes quite a bit of
> perseverance to get code into Sage.  My experience with my Jmol
> contributions is an example.  I would not claim to be the best coder,
> but think my Jmol contributions addressed some issues people had.
> And certainly the code is not yet ideal, but it does do most of what I
> understood people to want.  Because of the load on people doing
> testing, it has taken months to get much feedback on it.  This means
> anybody submitting code has to be willing to stick with it and prod it
> along over the long term.  People who are not serious won't do this.
> My example may be a little slower than many people's because I also
> have very little time to contribute to this, but I still think you are
> unlikely to get really bad code included using the present model.

To quote the above "This means anybody submitting code has to be 
willing to stick with it and prod it over the long term".

The real problem with Sage's development model will not show up
for a few years. At the moment most of the code being contributed
is supported by the original authors. The algorithms are complex
and some implementations are only competitive when optimized into
Cython, despite the "Sage is Python" mantra.

The real problem will arise when these authors leave the project.
Code rots. People make simple changes. Linux changes libraries.
Who will be able to debug research-level elliptic curve code
when some minor, unrelated change breaks it? Who will even know
that it is broken? Is it broken now?

And since the Sage code base is owned by other people with other
goals, that is, all of the spkg files from upstream projects,
the potential for code rot is much larger and the debugging
problem is much harder. Is the elliptic curve code failure due
to Sage-owned python changes or spkg changes? What happens when
python itself changes and upstream packages make the move to
python 3.0?

The problem isn't "really bad code". The problem is code rot.
What does a programmer need to know to maintain the system?
How can a new programmer join the project and contribute?
If it is not easy now it won't be possible later.

How do we architect systems to survive the loss of the authors?
How do we architect systems to survive the changing platforms?
Will Sage live?

Tim Daly





-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to