> > It seems to me: Sage isn't done yet and pretending it was does more harm
> > than good by making it more difficult to contribute.
>
> Why? Can you make a concrete example at what you are driving at?
> Methods with underscore are exempted from the deprecation rule since
> those are internal, but while some people including you have claimed
> that certain APIs in Sage are holding back progress I have not seen
> anyone give me an example.

I have to admit that I don't have any concrete example, so I take your point. 
It is a somewhat fuzzy even psychological issue I think. But since I have to 
admit it is fuzzy, I take it back until further notice.

I can think of hypothetical examples but nothing concrete right now from the 
top of my head.

> > Also, this whole 'don't break people's code' thing is a sham to some
> > extend anyway since the behavior of functions changes so much even in
> > minor releases anyway. Also it is those kind of changes that lead to
> > subtle bugs that are hard to notice in contrast to someting like an
> > AttributeError.
>
> Again: Please give an example. Behavioral are either unintentional or
> bugfixes AFAIK.

Sure thing:

http://www.sagemath.org/hg/sage-main/annotate/b3006824b208/sage/rings/integer.pyx

broke my code in a subtle way, i.e. it didn't crash but gave wrong answers. Of 
course, I could easily track it down and fix my code. Sure thing it wasn't 
intended to break my code but it did. Maintaining backward compatibility for 
this function however would have meant to stick with my ad hoc decision that 
digits() should have base two. 

At least some code in Sage is not based on a lengthly well thought through 
design process but on a developer's 'taste'. The backward compatibility rule 
would mean to stick to this decision until the end of time.

> I think you really overestimate the pain deprecations and removal of
> functionality does cause to the casual user. 

Do you mean to say 'underestimate'?

> The GAP 3 -> GAP 4 
> transition with ample breakage was quite painful to a lot of people
> and there are even some examples of very nice code that never moved
> from GAP 3 to GAP 4 to this day, either because the author didn't care
> because he kept using GAP 3 or alternatively because the author had
> left academia and was no longer interested in porting the code.
> Another example of when a user community to a large extend did not
> move from one version to the incompatible followup release is Macaulay
> 2.

Sure, stuff like this happens (a lot), but I really like Roman's answer to 
this: Make sure your new version is 10x more awesome than the last one and 
people will switch. 

Also, GAP3 was a mature system, Sage is not. I think we should build the 
system before thinking about maintaining bug-by-bug backward compatibility. 

> Overall: I am all for removing cruft, but given that we deprecated
> less than 10 functions over the last 8 months or so this API cruft
> must not exist to the extend you claim. I talked to Burcin about this
> and he raised some concrete examples, but he might want to describe
> them since my recollection is hazy.

Think about e.g. the planed break up of gen.pyx into elements that make sense. 
Maintaining bug-by-bug backward compatibility will be a nightmare because the 
file is pretty messy. I'm sure one can do all kind of weird things with 
gen.pyx right now that one shouldn't be able to do. Shall we keep this 
functionality for backward compatibility? 

Cheers,
Martin

-- 
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99
_otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
_www: http://www.informatik.uni-bremen.de/~malb
_jab: martinralbre...@jabber.ccc.de


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

Reply via email to