On Thu, Aug 21, 2014 at 9:45 PM, Bill Hart <goodwillh...@googlemail.com> wrote:
> Julia can already call Python functions (and I don't mean in some
> theoretical, technical sense, I mean very practically via an interface
> designed explicitly for such). So it's not necessary to "move" Sage from
> Python to Julia. Other Scientific Python projects haven't done this.
>
> There are other reasons why this is not necessary, because of other
> technical advances that will become available in the coming few years (they
> are working in labs right now).
>
> Instead, the Sage project should do two things in my opinion:
>
> 1) Make Julia part of the Sage ecosystem (it's already had a huge investment
> from the scientific and statistical communities, so this is a no-brainer if
> you want to embrace that community)
>
> 2) Invest in the technologies that are making Julia successful (jit,
> dependent typing, metaprogramming, type checking and inference, etc.)
>
> Whether 2 involves rewriting some functionality in Julia, or simply finding
> ways of adding such functionality to Python is really neither here nor
> there.
>
> What Sage can't do is just stagnate and ignore progress. If it does, it will
> be brushed aside as if it wasn't even there, as has happened over and over
> again in the history of computer algebra! And it's happening to Sage. A few
> years ago, people at conferences were excitedly demonstrating stuff in Sage.
> This year, they've moved back to Magma.

To fill out this point a little, in my experience (recently, and in
the past), such people choose to use Magma instead of Sage because
Magma is capable of doing X, where X is something important they need
for their work.  In some cases, Magma does X slowly, with frequent
crashes, etc..   But it does X nonetheless; whereas, programming Sage
to do X from scratch would take the right expert about 2 years.   This
illustrates how Sage is failing to be a viable alternative to Magma.
If Magma does X, and Sage doesn't, and people care about X, then Sage
is not a viable alternative.

Unfortunately, I don't think see "Sage switching to Julia", or Sage
having better support for "(jit, dependent typing, metaprogramming,
type checking and inference, etc.)" in itself would be enough of a
reason for people to have the option to choose Sage over  Magma.
Such advantages don't address the **real difficulty** in implementing
a first version of X that works, since implementing X fundamentally
takes reading and understanding papers, working out the right
algorithms, etc. -- it's almost entirely a human expert and design
problem.    At least that's my experience watching/making this happen
many times over the last decade.    Please keep in mind that much of
your (Bill Hart's) implementation work has been looking at
implementations of various algorithms and coming up with a new
approach that is better in certain ways -- that's certainly very
important and useful, but it is a different problem than doing the
first general implementation of code for computing with some class of
mathematical objects.    It's like the difference between building the
first ever car and inventing a better wheel.

Here are two concrete examples of X's where I've seen this exact
situation in the last few months, and for which there is no open
source implementation in any language, despite a demand for one over
the last 10 years:

    - (a) quaternion algebras over number fields (topic of Sage Days
61 next week -- https://sites.google.com/site/sagedays61/)

    - (b) functional fields, mainly Florian Hess's Riemann-Roch spaces
algorithm; this supports basic algebraic geometry constructions, which
Magma has and Sage doesn't.

There are dozens of other similar examples.   They are hard to get
funded with grants, because in all cases the proposal basically says:
"replicate something that's already been done... years ago".  Also,
the type of funding one wants is for a person to work full time on the
problem for 1-2 years.    A grant proposal that says "We plan to do Y,
and [lots about Y], but we need X [a little about X]," has a chance to
get funded (depending on Y).  However, there are many X's (like a and
b above) where I certainly can't make a compelling case for any Y
except "make sage a viable alternative".

If we actually had "real money" to support open source math software
development, I'm certain there could be useful open source
implementations of (a) and (b) above within 2 years.   I can think of
specific people who would love to carry out these core implementation
problems, but instead will be teaching a lot of Calculus instead, and
probably not enjoying it.

Anyway, a lack of funding is a big obstruction to creating a viable
open source free alternative to the Ma's for all.

 -- 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 http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to