Dear All, I want to add my testimony about this as a user of the framework.
> What really bothers me with the ticket is the reliance on implicit magic > over explicitly specifying relations between categories. From the ticket, > this example: > The theory here is that Sets defines a Finite axiom, and by some metaclass > magic the inner class Cs.Finite ends up being a subcategory of Sets.Finite. > [...] > Nicolas thinks this amount of breverity is a desirable feature, and I think > we should make Cs.Finite be explicit about which axiom it implements (and, > therefore, not require that it is named Cs.Finite if you don't want > to). I completely second Nicolas on that point. There is a clash between Python's "explicit is better that implicit" and mathematical usage. I really think that what's allows us to do mathematics, is *context*, that is implicit. Otherwise any mathematical proof, reasoning or computation is just too verbose. I also think that this unique point is what's makes writing mathematical software hard. Please think about what's implicitly done for example when I write: sage: K.<x> = PolynomialRing(PolynomialRing(QQ, 'y'), 'x') sage: x + 1 x + 1 Hum what's the meaning of '1' here ? Anyway, category (as its mathematical meaning) are part of this huge context which comes with any mathematical computation. Now going back to Sage, I really think that if we don't keep the syntax *as short as possible* (as in math: `let's G1, G2 be a finite commutative group and Phi be a morphism from G1 to G2`) then this will be much to verbose to be programmed with and each user will start to makes it's own shortcut which is much worse. I should also note that each other CAS which developed such a similar thing (eg. Magma, Axiom, MuPAD) relies on the Compiler/Interpreter -- that is language magic -- to implement the feature. I think its good to be in Python which is not a specific build language for a CAS but which should also add the necessary magic to Python to be able to do maths easily without the burden of syntax. As soon as sufficiently developers know the inside magic, my experience tells me that the user doesn't care. > We've explored various ways to implement this syntax, either through > inheritance or a class attribute, but Nicolas doesn't like any. Nicolas > keeps saying that we can change the syntax later, but I think that should be > done right or not at all on this ticket (one can easily implement the axiom > functionality without introducing the subclass syntax). The only drawback I personally see with this subclass syntax is the documentation. So I'm really tempted to vote for inclusion right now. I think people *other than the one involved in the ticket* should express themselves before we start counting votes. Cheers, Florent -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.