> About two years ago we made the painful transition from using Darcs to
> Mercurial for our revision control system. This was difficult, but had
> to be done because it was hard to get Darcs to run everywhere, and
> there were weird corner cases where Darcs would hang.  Mercurial isn't
> optimal but it gets the job done.
> 
> Frankly, I think we have similar problems using Python at the core of
> Sage.   I've been thinking very hard about how to deal with this for
> nearly a year now, and have come to the conclusion that we should make
> a switch from using Python at the core of Sage to Lisp.  The
> transition won't be easy, but it will be well worth the effort, since
> in the time frame I have in mind (30 years, say) I see Lisp really
> taking off, and despite its faults, anyone who has used Lisp a lot
> knows that Lisp is clearly a far better language than Python in
> several critical ways.    The strategy for switching will go something
> like this:
> 
>   1. Forking:  We fork clisp.   We have been using clisp for several
> years now in Sage, so we're very familiar with their build system.
> However, they don't make regular releases, and their foreign function
> interface is severely lacking, as is their Solaris support.  So we're
> forking, and will call the fork LispX.  I've talked with Robert
> Bradshaw about creating a new language called CylispX, which will be
> similar to Cython but for LispX, and I'm confident we can pull this
> off.
> 
>   2. Porting:  We have an intense sequence if "Lisp days", both
> workshops and 1-day long IRC events, where we go line-by-line through
> the Sage library and rewrite everything in Lisp.   As we go, we'll
> make sure that the rewritten code is always at least as fast as the
> original code (this shouldn't be a problem, because of LispX's
> extremely good profiling and dynamic optimization features).   I hope
> everyone here is willing to pitch in significant time to this effort.
> If you're not, I would really like to know what your concerns are.
> 
>   3. Polish: I estimate step 2 will take about 3 years, given the
> amount of time it took to write the original Sage library, and also
> the level of familiarity of most Sage developers with Lisp.  Also, we
> will likely run into subtle snags with SageLisp's interface for
> calling C functions.   But with everybody's hard work, we'll get
> through this.
> 
>   4. Sage-4.0: On April 1, 2012, we'll release Sage-4.0, which will be
> the complete Lisp-rewritten version of Sage.  We will then get to work
> on porting all of the nasty C/C++/Fortran dependencies in Sage to
> Lisp.  We'll likely start with GMP/MPIR (we may have to fork, though I
> *hope* Bill Hart will be on board), then moving onto mpfr, mpfi,
> FLINT, PARI, etc.  I estimate that with lots of hard work by everybody
> reading this email, we can accomplish this in at most 4 years.  This
> will be a great contribution to mankind.
> 
>   5. Finally, on April 1, 2016, we'll release Sage-5.0, the fully
> Lisp-ified Sage.  We will then get back to porting Sage to Windows,
> Solaris, and implementing new functionality for combinatorics, linear
> algebra, number theory, algebraic geometry, optimization, etc.
> 
> If anybody isn't 100% convinced that this change isn't -- in the long
> run (30 years) -- well worth our effort, please respond.
> 
>   -- Best Regards,
>       William Stein
> 

On the whole, and after great consideration, I feel that you must be
suffering from delusions caused by Mercur(ial) poisoning. 

While I admire your vision of the long term I think that you underestimate
the "snobol" lesson, which is that accretion and agglomeration are the
proper way to create a design that encompasses all minds, rather than
the stilted, uniform design that represents a straight-jacket for the
imagination. As evidenced by Sage's rapid growth, similar to the rapid
acceleration of a snowball, Sage is clearly on the right path.

Far be it from me to challenge your attraction to the curvaceous
(some say "rubinesque", (although "bloated" has been applied by those
who awake (buried as they are) within the inner depths of parentheses))
but I caution you about following your eye rather than your intellect.
  Besides, a space is clearly a lighter weight character, despite the
    minor inconvenience of distinguishing a left-space " " from a 
     right-space " ". No doubt the notebook colors them properly.
  Equally balanced as a favoring syntactic argument, in which I
   nest the pile of my missive and plea for right thinking,
    python is shown to be a language capable of swallowing all, like
     its reptile cousin.

Surely mathematics requires interpretation, which is respectable for
its deliberate air, rather than crass compilation. If everything were
reduced to turing-computablity, who can say when it will end?

Mathematics is known to have inconsistent notations, which the current
Sage design admirably captures. Consistency is the hobgoblin of small
minds \cite{Whitman}, usually bounded by ( and ). Using strict prefix
notation for actions would be like putting verbs at the beginning of
a sentence. Do that, we should not.

Sage is currently on the path to perfection with its release strategy
\cite{Continuous Release and Upgrade of Component-Based Software, by
Tijs van der Storm}. I long for the day when Michael will simply update
a torrent download from his Sage sources with the latest fix in mid-fetch.
Pausing to develop fully literate sources in a 1950s language like lisp
would be a step into the past rather than a charge into true future shock.

Indeed, the very idea of literate sources disavows centuries of
mathematical notation, mostly in greek. If you can't understand math
without 10 years of higher education, why should anyone expect to
understand or maintain source code? It is much more educational to
write it again from scratch. I walked uphill to school and back. The
next generation should too.

As for the 30 year horizon, surely you know that the end times are upon us.
Those who continue to believe in the GPL (2.0, not the heretical 3.0, nor
the loose and wanton BSD, nor the countless other licenses, count as ye
may from 0, or from 1, or any other comprehension thereon). Yea, those
who BELIEVE in GPL2.0 will be raised like an exception to the outer scope
and survive the great garbage collection process.

Remember the eternal wisdom
try as you propose
  throw() your plans
    repent and be saved(pickle)

Tim, the convert



--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to