Am 12.01.2015 um 20:22 schrieb Rathmann:
To me, the relevant concept seems to be software coupling, as railed
against by structured programming gurus in the 1970s and 80s.
Coupling is logical interdependency.
An import already establishes that dependency.
Having imports which know exactly where a symbol is defined, increase the
knowledge that one part of our code has of other parts.
Okay... yes, there is some additional coupling, in the sense that the
caller is coupled to the callee in that it needs to know that additional
detail (implementation location).
However, internally, the SymPy code is tightly coupled anyway. E.g.
everything is connected via the assumptions system, via the Symbol
class, etc. - you can't even start to decouple anything, beyond maybe
some very basic libraries and diagnostics.
Coupling is often unavoidable, but always comes with a cost.
I'm not seeing any noticeable cost from coupling.
Which may be because I'm overlooking something, so if coupling means
some tangible disadvantages, then by all means please describe it!
In this case, the added coupling is pretty minor, but I would still tend to
vote against a global change.
Well, that seems like you do not think the advantages are worth anything.
What reasons make you think so?
I don't use an IDE, but isn't finding definitions of symbols one of the
basic features? (Or just use an emacs tags file, if you are feeling retro.)
It is, but they depend on having enough clues about what's going on.
SymPy is being rather heroic about hiding such clues: Some classes get
their members at runtime (most notably S and C), we construct things
that are both classes and functions, and we hide some of this stuff away
in decorators just for that extra level of obfuscation.
I don't know how other IDEs fare, but PyDev (Eclipse's Python IDE) fails
horribly and misreports some 50,000 errors and warnings.
(Of course, the things SymPy does to confuse the heck out of static code
analysis does have its well-considered advantages. Most of the time,
anyway.)
--
You received this message because you are subscribed to the Google Groups
"sympy" 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/sympy.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sympy/54B444CC.5040800%40durchholz.org.
For more options, visit https://groups.google.com/d/optout.