Seems like noone is using this list besides me. Anyways, some thoughts
for contemplation:
I think it'd bad, if companies like Microsoft pay enormous taxes,
which are then used by the government to fund projects, that are
released using a license (GPL3), so that Microsoft can't use it.
(That's not the Sage case).
The same about enthought and BSD. I think government funded software
should not use any other license (if one has the choice to choose the
license) besides public domain, or permissive licenses.
With Mathematica, it's more involved, since lots of universities buy
it (using government money), so is it bad, if Mathematica uses some
software which is not "protected" by GPL? Like gmp. I tend to think
it's not bad, but I can see the argument, that since Mathematica also
lives by government money (indirectly), it should release its'
software as BSD, counter argument is that the universities don't have
to buy it.
Ondrej
Huh? So you believe that software that receives government funding
should not be allowed to use the GPL license? Is that what you're
flaming?
William
I think so yes.
Ondrej
Do you also think that the Sage project should thus spend about 10
years (or much more?) of hard work by a bunch of people to rewrite all
functionality we need that is currently in GAP, Singular, PARI, NTL,
GAP, GMP, and Maxima from scratch? Moreover, do you think we should
thus sever our relationships with the communities that have created
all that software? Because that is really the only option if Sage is
to be releasable under a BSD or PSF license.
-- William
No, I don't believe that and I never said that, e.g. see in my email
where I said --- if it has the choice of the license, because I was
expecting that you'll reply exactly that:)
> thus sever our relationships with the communities that have created
> all that software? Because that is really the only option if Sage is
> to be releasable under a BSD or PSF license.
I don't think it's a good option.
On Tue, Aug 11, 2009 at 8:04 PM, David Joyner<wdjo...@gmail.com> wrote:
>
> On Tue, Aug 11, 2009 at 9:41 PM, Ondrej Certik<ond...@certik.cz> wrote:
[...]
>> I think so yes.
>
>
> It is hard to argue against that but IMHO the GPL serves the public interest
> in terms of taxpayer's value. The BSD has greater commercial value but
Yes, I think in the first place, everything that is supported by
government money (=tax payers money, because government has no money)
should be opensource and GPL is an opensource license. So GPL servers
the public interest imho, to some extent.
> I'm not convinced that every taxpayer-supported program must also
> support also commercial interests. If commercial interests are set aside then
> it seems the the GPL is a sufficient license to guarantee taxpayer's value.
> If the commercial value is not to be set aside then what is the argument
> that the taxpayers must *also* support commercial companies?
I think this is the root of the question. I don't know, I guess
everyone has to decide for himself/herself. I tend to think that
government/taxpayers should not restrict taxpayer in using the "public
product" in any way they wish, it's their money.
Ondrej
Here's another question for you. In the case of Sage, perhaps 90% of
the effort is volunteer work, often in people's free time, as a hobby.
It would be generous to say that about 10% is directly being funded
by government grant money. How does this sort of "partial funding"
impact your thinking?
-- William
Exactly. I don't know the answer.
I don't even think there is an answer, at the end of the day, one just
has to use his own judgement and intuition, to best use the government
money to server public interest. I think Sage is doing well with this
regard.
Ondrej
It's certainly doing better than Magma in this regard, imho.
William
Exactly, GPL or BSD, is a little thing, on top of the iceberg, because
both is opensource. I think that getting government money, creating
something, and then selling it without giving away the sourcecode, I
think that's a wrong model (=definitely I do not support such model).
But I have thought about your question --- so my answer is that I
believe that government funded work on software should be BSD (or
public domain) and in most cases one can satisfy that pretty easily,
e.g. I get some funding on implementing magnetohydrodynamics, so I do
that, release all my new code as BSD, and yes, in order to actually
run it, I have to use some GPLed software (umfpack, FEM solver), and
since that is the best that I can get for the government money (e.g.
the only alternatives are commercial), then I just use GPL. E.g.
exactly like Sage, there are no alternatives to gmp, maxima and other
libraries.
The idea is, that let's say some company would like to get something
for their taxes, so yes, they get exactly my work, e.g. they can take
it, and use it (it only depends on opensource) and since it is BSD
licensed, they can do whatever they want with it. I couldn't make it
depend on BSD stuff only, because then I couldn't get my job done,
which is the most important what I got the grant for.
Anyway, thanks for discussing this with me, it helped me to form a
better opinion on this.
Ondrej
Hey, there is a slashdot story right now called "Leaving the GPL
behind" about just this sort of discussion:
http://news.slashdot.org/story/09/08/12/018255/Leaving-the-GPL-Behind?from=rss
I think it's the same as if you pull some BSD code and integrate it,
and create some (GPL) patches on top of it. E.g the code stays bsd, so
the government (and me) are happy, and what other people contribute in
their own government sponsored activity, they are also free to use any
license they want (e.g. GPL).
Ondrej
Ondrej
I mean non government sponsored activity
Ondrej
Do you also think that the Sage project should thus spend about 10
-- William
years (or much more?) of hard work by a bunch of people to rewrite all
functionality we need that is currently in GAP, Singular, PARI, NTL,
GAP, GMP, and Maxima from scratch? Moreover, do you think we should
thus sever our relationships with the communities that have created
all that software? Because that is really the only option if Sage is
to be releasable under a BSD or PSF license.
Unfortunately, very large software projects are difficult, resources
are limited, and there are many bugs in them. For example, Sage has
1586 known bugs right now:
William Stein
Unfortunately, very large software projects are difficult, resources
are limited, and there are many bugs in them. For example, Sage has
1586 known bugs right now:
http://trac.sagemath.org/query?status=new&status=needs_work&status=needs_review&status=needs_info&status=positive_review&type=defect&max=0&order=id
Definitely if there were massively more money/people/resource, then
all kinds of amazing things could happen.
William
On Fri, Nov 15, 2013 at 8:39 AM, "Jakob Kröker"
<kro...@uni-math.gwdg.de> wrote:
> <offtopic>
> It seems my post got lost due to some browser issues, recent updates of
> google group (I'm using firefox) or it was blocked by a moderator
> I'm now trying to answer directly via email and apologize if someone will
> get duplicate messages.
> </offtopic>
>
>
>> Unfortunately, very large software projects are difficult, resources
>> are limited, and there are many bugs in them. For example, Sage has
>> 1586 known bugs right now:
>>
>> http://trac.sagemath.org/query?status=new&status=needs_work&status=needs_review&status=needs_info&status=positive_review&type=defect&max=0&order=id
>>
>>
>> Definitely if there were massively more money/people/resource, then
>> all kinds of amazing things could happen.
>>
>> William
>
>
> If the size and complexity of the Singular project were the only problems...
> It seems that several Singular developers ignore basic known lessons from
> software engineering.
>
>
> Just to give some examples:
>
> - Most interfaces do not check if the input parameters are valid
>
> -It seems (at least several) Singular contributors do not test or review
> appropriately their code:
>
> some methods fail for very basic input
>
> http://www.singular.uni-kl.de:8002/trac/ticket/527
> http://www.singular.uni-kl.de:8002/trac/ticket/526
>
> -Singular has serious issues with variable shadowing, ring variable name
> conflicts, global(!) options,
> see e.g.
>
> http://www.singular.uni-kl.de:8002/trac/ticket/508
>
> -Singular maintains reference output (in a git repo) only in packed binary
> format(!) so that is almost impossible to retrace changes:
>
> http://www.singular.uni-kl.de:8002/trac/ticket/531
>
> -years ago I held in Kaiserslautern a talk about test code coverage, and I
> guess things get not much improved (I have to check first, through).
>
> I will stop here for now.
>
>
> What I'm fearing is that relying on external libraries with quite poor
> code quality( e.g. Singular )
> will have major negative impact to the Sage project.
This is an argument that might have made sense to make 8 years ago.
However, since we've been relying on Singular for 8 years, you must
instead point out specific ways in which relying on Singular has
*already* had a major negative impact on the Sage project.
It is easy to find a lot of Sage bugs in http://trac.sagemath.org over
the years that are completely the fault of Singular. However, I
don't have the impression that they have had a "major negative impact"
on the project.
There have been numerous instances of joint workshops and other
collaborations between Sage developers and the Singular group over the
years, which I view as a positive impact.
If we had not used Singular in Sage, leaving us with no non-toy
Groebner basis functionality at all, or even fast multivariate
polynomial arithmetic, then *that* would definitely have had a major
negative impact on Sage.
That said, if somebody (you?) wants to sit down and work very hard for
several years to do a good job implementing the same sort of
functionality from scratch that we use Singular for, and in a better
quality way, then this would be a very valuable contribution to the
community.
On Fri, Nov 15, 2013 at 9:49 AM, rjf <fat...@gmail.com> wrote:
> I do not recall the last time I personally used Singular, and in fact I may
> not have ever used it.
That should be your signature, but with Singular replaced by "anything".
>> If we had not used Singular in Sage, leaving us with no non-toy
>> Groebner basis functionality at all, or even fast multivariate
>> polynomial arithmetic, then *that* would definitely have had a major
>> negative impact on Sage.
>
>
> Are you familiar with CoCoA ?
Of course, and I know the developers. However, CoCoA was closed
source for several years during which time we were using Singular in
Sage. I did write a pexpect interface to Cocoa though. The cocoa
devs started a complete new open source rewrite from scratch. I
don't know how useful that is today.
>>
>>
>> That said, if somebody (you?) wants to sit down and work very hard for
>> several years to do a good job implementing the same sort of
>> functionality from scratch that we use Singular for, and in a better
>> quality way, then this would be a very valuable contribution to the
>> community.
>
>
> It seems that your message above contradicts this "valuable contribution"
> notion. 1. Singular seems to work well enough; 2. We like the people;
I don't see a contradiction. This is identical the situation with
FLINT (versus PARI) -- it turns out that because PARI already solves
quite a lot of mundane problems, the FLINT devs have focuses mainly on
solving problems that you can't solve anywhere else, e.g., designing
and implementing new algorithms that are faster than anything ever
done before (anywhere).
> So it seems that working on this project would be almost pointless
> from the perspective of Sage. Beyond Sage, I am not sure about the
That's wrong. For example, Magma is (dramatically) faster than any
open source software at certain classes of Groebner basis. Somebody
who writes a new quality library might produce something that is
competitive with Magma. This happened, e.g., with Faugere, though
instead of open sourcing his work, he sells it (e.g., to Maple), which
is fine, but isn't a contribution to open source.
However, I have no
reason to think Jakob might not write something of great value that is
better than Singular at certain problems, and is open source. I
strongly encourage him (and anybody else!) to try, and if it turns out
they succeed, we benefit.
William
I encourage innovation, experimentation, etc.
Perhaps this hypothetical person would produce something that is not a
proper subset of CoCoA... Software is complicated and multifaceted;
programs are rarely proper subsets of other programs.
>> That's wrong. For example, Magma is (dramatically) faster than any
>> open source software at certain classes of Groebner basis. Somebody
>> who writes a new quality library might produce something that is
>> competitive with Magma. This happened, e.g., with Faugere, though
>> instead of open sourcing his work, he sells it (e.g., to Maple), which
>> is fine, but isn't a contribution to open source.
>
>
> So if anyone had any interest in a Grobner basis computation, an interest
> worth more than a few dollars, he should either
> (a) buy or borrow the use of maple
> or
> (b) spend a few years of his life trying to figure out and improve on
> Faugere's
> stuff.
>
> Hard choice.
Seriously?
>> However, I have no
>> reason to think Jakob might not write something of great value that is
>> better than Singular at certain problems, and is open source. I
>> strongly encourage him (and anybody else!) to try, and if it turns out
>> they succeed, we benefit.
>
>
> Primarily in a political, not a mathematical sense, it seems.
Nope, mathematical and technical. Political is irrelevant.
Well, you've succeeded at wasting 10 minutes of my time...
....
With Sage at least it is theoretically possible via reading relevant
source code to make a judgement for yourself in any particular case
You can see how good the tests, are, etc. That's a first step at
least, which isn't possible with (say) Mathematica or Magma. It's
clear you've been doing exactly this with the Singular source code,
and you're not happy with what you see. Fair enough.
I once asked a CoCoA developer why CoCoa was closed source; they said
the *main* reason was that the source code was "embarrassing".
> To return to the topic ("the most dangerous Sage language flaws"),
> I guess that many bugs will be related to the Python<>Sage integer types
> interaction and Python's implicit data type conversion rules,
> especially to the "everything is a bool" philosophy.
>
> Comments?
> Or more suggestions (see also Bill Hart's post)?
>
> What about antidotes? I would expect, there exists a checklist (is there
> one?) which describes how to deal with this (and other) distinctive
> features of the Python programming language properly. In addition to code
> reviews and code testing, maybe it would be also fine to have a link to an
> online test where contributors may check their Python skills. At a first
> look I didn't find a free online test, but maybe this needs an extensive
> googling session..
When I teach Python and Cython programming to undergrads (which I do
for at least a month every year), I spent a lot of the time covering
the standard gotchas, which I've seen confuse a lot of people and
waste much time over the years. See
https://github.com/williamstein/2013-480