On Tue, Apr 12, 2016 at 7:33 PM, William Stein <wst...@gmail.com> wrote: > On Tue, Apr 12, 2016 at 7:11 AM, kcrisman <kcris...@gmail.com> wrote: >> This has been an interesting thread. In the end, I think that some (or a >> lot) of Sage's attractiveness to end users goes away if it becomes a bunch >> of possibly-updated packages that might or might not work with a current >> version of Sage. I always found the "with(plots)" syntax (or whatever it >> was) in Maple very frustrating, and that is presumably a 'core' package; >> having random stuff suddenly not work (let me be clear, because it was left >> behind by Sage core) would be even more so - as has been pointed out several >> times here. > > I am a little annoyed, since this completely misunderstands my proposal. > > 1. My proposal was to make it easier for people to develop new code > independently of the core sage library. This in itself has nothing > to do with taking away from the existing library or in fact changing > it in any way (at least initially). > > 2. Moreover, to directly address your concern, if 3d plotting (say) > were split off as a separate Python package/library, that does *not* > imply that when you download and install Sage, or start it, that you > can even tell the difference. It doesn't mean that the normal visible > public API of Sage changes > at all. Why do you think otherwise? We would just include that > Python library as a standard package, just like the hundred other > standard packages. Volker has mentioned several times how Python > enables doing this sort of thing pretty easily already.
Okay, and this is what I get for not reading further downthread before replying--I see we're in agreement here. Erik >> Sage users (and potential ones) I speak with want more than just the "basic" >> functionality, because they want something they can use throughout the >> curriculum and in their own research. There are other (good) tools for >> those who truly won't be doing anything beyond calculus. >> >> Now it's true that some material in Sage probably could have been in >> separate packages, as it's quite specialized - likely a lot of the >> sage-combinat stuff, the designs stuff, modular forms stuff (elliptic curves >> are actually more popular, I think). But then there's the opposite problem >> of finding out how to enforce that a package must compile with the most >> recent Sage. This is R's model, but R tends to have a very different type >> of package, one that implements something relatively narrow. Also, we don't >> have the auto-testing resources of R. > > 1. There can and should exist packages that depend on the core Sage > library and have a relatively narrow focus. Why not? > > 2. Maybe we don't have the same auto-testing resources as R does > today. Who is to say we won't in a year or two? > > I'm planning for a future where the Sage project *does* have > resources, and where it is possible to hire 2+ people fulltime to > maintain Sage, like what ODK is doing *right now*. That's what we > should be aiming for. We have it right now (due to ODK) with Erik and > Jereon, at least, and if SageMath Inc succeeds, then it will be > possible to continue and grow this. > > >> >> The problems that Luca and Simon are (rightly) pointing out, in my view, are >> not solved by more modularity - if anything, the problems were because they >> were not part of 'standard' Sage, though I of course am not suggesting they >> should have been part of it. > > Their problems were partly caused by us not supporting and encouraging > the creation of code outside of standard Sage. We should be doing > that 1000x what we are doing now. Right now, we as a community (not > me, but certainly many others) are shockingly discouraging and > negative toward any code that isn't officially in the core sage > library. I think this situation is really baffling to see for a lot > of outsiders. > >> As an example of what happens with the package system, consider several >> Maxima packages (which shall remain unnamed) which don't work well with >> other Maxima commands/flags/packages (no doubt rjf would say we are using >> them improperly, which may be true). Well, they're separate packages, with >> their own maintainers, and I don't know that anyone beyond them takes >> responsibility, and fixing lots and lots of hard-to-track-down bugs once >> you've put in the initial effort is very daunting and time-consuming. So >> they kind of languish, I think - not that some Sage bugs don't too, but >> there is less likelihood that someone else will take the time to work on >> them if it's "just a package", perhaps with its own separate web >> affiliation. > > Just because some people have zero funding and are bad at packaging > doesn't mean that the mainstream standard mature approach to open > source software development, as exemplified in many ecosystems now (R, > Pypi, npm, Debian, etc.) is broken. > >> (I'm sure the same thing applies to many user-contributed Mma and Maple >> packages, but I don't listen in on their ecosystems - I mean upgrades >> breaking them, that is. They are fairly monolithic, though?) >> >> To be clear, I'm only talking about the core Sage library; if people can >> find a way to make the other stuff more like sage-on-Gentoo without making >> it really, really hard to use on any setup other than the most popular >> distros/most bleeding-edge Mac OS, that is great. >> >> I also don't have a problem with things like psage or any other such >> packages (as I think William is proposing in this thread for much of the >> functionality), but the experience thus far has been that the successful >> such things are eventually merged in Sage proper, rather than being >> contingent. > > Extreme selection bias. Our community strongly forces things to fail > if they aren't "merged in Sage proper". You then look at that and > conclude things that succeed do so because they are merged in Sage > proper. > >> Think of how much time has been spent on managing the >> sage-combinat queue or branch or whatever to make sure it always works ... >> *Given our constraints on testing*, building the car was the right idea >> then, and it's still the right idea now. > > Cars are built out of parts. > >> And I would rather have the car that can drive everywhere - for me, for my >> students, for my colleagues - against the car that needs fancy upgrades that >> are often not available on my model. Volker's original comment still holds: >> "As long as the goal of "import sage" is to give you something like the >> feature set of Sage right now we don't benefit from modularization. That is >> just a tautology, the goal is just not a modular one. We'd just shoot >> ourselves in the foot if we split things into multiple interdependent >> packages that then must be upgraded in lockstep." > > Modularization -- one of the most basic and important ideas in > software engineering -- is not shooting ourselves in the foot. > > -- William > >> >> -- >> 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 https://groups.google.com/group/sage-devel. >> For more options, visit https://groups.google.com/d/optout. > > > > -- > William (http://wstein.org) > > -- > 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 https://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/d/optout. -- 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 https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.