Le 08/11/2011 07:37, Jonathan Bober a écrit :
On Sun, Nov 6, 2011 at 5:59 AM, Julien Puydt <julien.pu...@laposte.net
<mailto:julien.pu...@laposte.net>> wrote:
Le 05/11/2011 21:24, Justin C. Walker a écrit :
There are so many different versions of each library and system
(for Linux, in particular)
that it's a practical impossibility to produce a package like
Sage that will work on the systems currently supported.
I would like to point out that quite a few distributions have some
sort of rolling-release organisation, where some packages are
updated within a huge set with complex deps. It works.
And I'm not just discussing linux distributions : there are a few
*BSD out there too, and I think there are distributions for Sun, OSX
and win32 too.
So I think it's definitely practical and possible to produce a
package like sage that will work on the systems currently supported,
and more. Because it has been done.
Any of the many debian packages I have on my system has a list of
deps. Each sage spkg has deps. Where is the difference? Why would it
be impossible to "apt-get install sagemath", "yum install sagemath",
"emerge sagemath" and have the right thing be done?
I can't understand why you think sage is different.
I don't know enough about software packaging to know if sage is
_really_that different, but it is quite complicated and large, and it
may take a big coordinated effort to get sage into every different
distributions package management. And sage needs to work on old
releases. It is possible to update mpfr on Ubuntu 8.04 without adding an
extra repository?
Sage developers shouldn't care. If you start down that road, you'll soon
end up putting in your own libc, your own libc++, your own editor, your
own C/C++/whatever compiler, etc.
Making sure the deps for the sage package they have built are available
is a packager's problem -- not a developer's.
But anyway, the main reason I'm writing is that I've seen these type of
comments many times, and I think you are missing that having everything
included is, to many people, one of the great features of sage. Sage
might be large, but it is completely trivial to download and compile,
and it is not much harder to start developing. And it is also completely
trivial to do this whether or not you have root access on the machine
that you are using. Here is a short story:
Not long ago I wanted to use mercurial on a machine where I have an
account, but no root access. I'm sure I could have asked the sysadmin to
install it, but it was probably not during business hours, and maybe it
was even on a weekend. "Well, it should be easy enough to install it
myself in my home directory", I thought. Not so fast, though ---
mercurial needed some python source files in order to compile, and this
machine doesn't have the python development packages installed. So I
suppose I can just download those, but wait, it also needs... 30 minutes
later, mercurial is still not installed, and I'm getting frustrated, but
then I realize that _sage_ includes mercurial. So I download sage, type
'make', and sit back and wait.
So I am asserting that the easiest way to install mercurial, if you
don't have root access, is to download and compile sage.
And a little later, when I realized that the system-installed mpfr is so
old that it doesn't have mpfr_mul_d(), my first reaction again was that
I should download and compile mpfr, but first I need gmp (or should I
get mpir instead, and then deal with compiling it in gmp compatibility
mode?), and gmp needs.... Or, of course, I can just add
-I/home/bober/sage/local/include and -L/home/bober/sage/local/lib to my
makefiles.
So I am asserting that the easiest way to install mpfr, if you don't
have root access, is to download and compile sage. And the same goes for
just about every other package included in sage.
For many of us, sage is not just a 'program'. It is distribution of lots
of the software that we want to use, and many people have done a
wonderful job of making it so that it is usually completely trivial to
install, and also to modify, even without root access. So if someone
wanted to go do lots of work just so that I can type 'apt-get install'
instead of 'make', that would be fine with me, but I think it would be
missing the point; and if it interfered with the current simple build
process, it would be a step backwards for me.
You seem to think that you're arguing against my point, but I don't
think that's really the case : in fact, you explain well how important
it is to have sage handily distributed. And I fully agree, it's mango
flesh. Then you lightly conclude that sage=distribution+program is the
only way out of. And there I fully disagree : you've just swallowed the
mango's kernel!
Having a sage=distribution organisation has the problems I already
pointed out ; let me remind them:
- developers use too much of their time worrying about deps instead of
making things better ;
- sage is too big to fit in the newer smaller computing devices
available today and tomorrow ;
- sage doesn't integrate well with distributions.
The sage=program paradigm would fix those cons. And the anecdot you
describe could still be solved. It already is, in fact. In France,
teachers are choosen through some kind of competition. One of the tests
for future math teachers makes use of computers. You'll find here
http://clefagreg.dnsalias.org/ a distribution aimed at them. And in
fact, several distributions, to be installed on a usb key and booted,
precisely because the students may not have administrative rights on the
machines they have access to. There used to be a sage variant, which is
still mentioned, but I don't find it on that page. It was optional in
part because of size issues : the key was already choke-full with
math-oriented stuff... which sage duplicates!
Oh, and did I mention that my ARM port takes two days to compile? Having
sage=distribution, and a source-based one... definitely isn't a good
long-term solution!
So basically, the sage=program paradigm makes things work better, and
I'm still looking for a *good* reason why people think sage *must* be a
distribution.
Snark on #sagemath
PS: I still want to remind that I'm not asking for an overnight switch
or a revolution. What I want is people to :
1. be conscious of the matter ;
2. let little steps in the right direction happen ;
3. not go in the way by adding careless pitfalls...
so that when time is ripe, the switch will be easy.
--
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org