-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
>
> - "The interfaces between packages was by strings which made 10 ^ 6
> times slower than what we got on Mathematica."
In most, if not all, web frameworks using a sql database, queries to the
database are made by building strings in sql.
> By creating pexpect interfaces initially, we were able to establish an
> API and build up things on top of it (e.g., compute the irreducible
> components of a variety). Then later we wrote C library interfaces to
> many of these same components, which migrate to use that new
> interface, maintaining tests, etc. This sort of careful strategic
> iterative development, which easily parallelizes to a large number of
> people and gets big projects (GAP, Singular, PARI) to work together,
> rather than compete, is not amateuristic -- it's very sensible.
I completely agree. Performance is great, sure, but being able to
perform a computation comes first. Having a simple and quick way to test
an idea is more important. To me, it's of great importance to have a
first working prototipe. If at the end I don't get enough performance, I
can rewrite the code, then code parts in cython, then trace the
libraries that get called and call them directly. The
effort-to-performance curve in Sage is very smooth. I can optimize only
up to the point when my computation gets done. It's very cool and R,
matlab, octave, scilab do not have such facilities... I don't understand
why Sage is not more popular.
Regarding contributions from undergrads, I recently found this book:
http://aosabook.org/
Many of the projects mentioned in that book have gone to great lenghts
to allow contributors to join, with different levels of experience. Many
of those projects have got serious work done from non-experts, having
them work in the right place. I personally like Sage's way. The open
process, the peer review, and the battery of tests helped
non-computer-scientists like myself contribute to the surface without
breaking the structure. The process is more complicated than in most
open source projects, but of course Sage is way more complex than the
rest, integrating tighly so many packages that were not designed to work
together. I would only change the way to contribute documentation, which
I don't think needs not be so complex.
I'd say you can't please everybody: simple enough to be used for
undergrad teaching, solving as big an array of mathematical problems as
possible, completely consistent, and with uniform performance... it's
important (and hard) not to pay attention to flamers. In an open source
project of mine, I've heard:
- - if you had used php instead of python, which everybody understands,
I would have contributed
- - if you had used ruby instead of python, which is more trendy for web
apps, I would have contributed
- - if you had a big array of tests, I would have contributed.
- - if X, I would have contributed.
and of course lots of users saying they would use the program if only it
would had this or that feature. Now I only listen to actual
users/contributors, for sanity.
Regarding funding, I think we, the mathematical community, have failed
to properly fund Sage. In Spain, it's hard to justify spending public
money on something you can get for free. It's easy to get a grant to
have undergrads contribute to a project, but only for a short time, so
usually they can't contribute code at all. In late years, it's also
incredibly difficult to have a permanent position, so only senior
researchers can afford to spend serious time on an open source project.
We should be ashamed that it's so easy to spend hugh amounts of money in
closed-source projects.
So William, it's a great project, and *it was necessary*. The pieces
were laying there, waiting for someone to grab them and join them.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIbBAEBAgAGBQJVIi1aAAoJEATsOw+FDrzIpRQP+P3VivDu2PN6y5zqS3Upof8I
oJzvehLZttLQJG9HbhMx7tWoJUC02fKTz+x6Gf4uS100XWsVJuLKNujjiPJEiI1Q
p17ST3+yXYL15lFN42xuothBOHsb6VXfLNh7Q+V99uAcXupRBMwwnKJlMr8m8qXb
QcghPkD8KLDXW1AQqG51NVjkqE31diHxaZpOV1RSZh+9QQkKzrbOhMOQSi8ABAPz
VcpEKgEsMwEviMJadpwEeXWFue4jdgr+eqIL0vlfDLvr4R2lbGtiZDpyon72QC39
IFu66ABq5O2NwZkXCO00Hpyik7raEEpvPVB8KfK5QPwOCxE7/MRxlReFmfr/WKjZ
A5BRmsAh1pgTg+SzCOFs+L8yvMAO8OSuKY2n5S4Adj53bkzKJ1fPuSPyilkTZMey
cBsRqvdrdLN9gU+a9pjTGvxY5uYMxvTQ22HRM6lyoL18a7H291B1TSLuX4u9Isgx
2+s8IhA0Je+jo2xXMtAy1r3BukBFPnEUDQKbpQ/0yrOA0LZYPCsM9s7O8c9r+11r
7Wp+Ul9p13tkxE4ZDTbpkhDEwEw0/bmp9i5HdEWIBMHqqy6UN88A52axqceLIBjx
F+o4n/hHsyD96Y9rmOfLI+QCi5spCgUFJ3rq490IfHS86592zc5bWcXH+kpjmkxt
0AU61WHop0CnMWA9gEY=
=eN8R
-----END PGP SIGNATURE-----