#17958: implement declare_var, deprecate (None)var
-----------------------------+------------------------
       Reporter:  rws        |        Owner:
           Type:  defect     |       Status:  new
       Priority:  major      |    Milestone:  sage-6.6
      Component:  symbolics  |   Resolution:
       Keywords:             |    Merged in:
        Authors:             |    Reviewers:
Report Upstream:  N/A        |  Work issues:
         Branch:             |       Commit:
   Dependencies:             |     Stopgaps:
-----------------------------+------------------------

Comment (by tmonteil):

 Replying to [comment:11 vbraun]:
 > `SR.symbol` and `SR.var` should probably be aliases but aren't. I wasn't
 even aware of `SR.symbol`, which is why I only fixed the comma parsing in
 `SR.var` in #7496.

 Actually `SR.var` is a wrapper over `SR.symbol` that splits commas and
 spaces to create tuples of symbols.

 > How about something like `R.<x> = SR()` to get symbolic generators?

 This is non-pythonic, requires additional preparsing, needs to create the
 name `R` while the ring `SR` is already here, and will add even more
 confusion to newcomers that hardly understand the difference between a
 symbolic expression like `x^2+1` and a well defined polynomial over a well
 defined ring.

 Replying to [comment:13 mmezzarobba]:
 > Definitely not `Symbol()`. As for `symbol()`, it could have been a
 better name choice than `var()`, but I doubt switching to it now is a good
 idea. The benefits are not that significant, and since `var()` is
 proabably one of the most widely used functions outside the sage tree
 itself (in particular, in random code snippets), the compatibility break
 would be a pain for many of people (the recent deprecation of
 `pol.coeffs()` already was pretty bad from this point of view).

 The benefits are very significant for newcomers and anyone that interacts
 with newcomers, i personally spent a huge amount of time to deal with that
 issue (on ask.sagemath.org (see my previous link for a small sample) but
 also during tutorials).

 Sage is full of inconsistencies, refusing to clean them because they are
 used increases the entry cost and will eventually lead to an obscure
 language where each function/method has its own semantics. This is not
 long-term viable. This is why we have a deprecation policy. For such a
 function, we could make the deprecation message more verbose and
 pedagogical than usual.

--
Ticket URL: <http://trac.sagemath.org/ticket/17958#comment:14>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to