
Open source is now ready to compete with Mathematica for use in the classroom - williamstein
http://sagemath.blogspot.com/2016/02/open-source-is-now-ready-to-directly.html
======
bloaf
Tools for solving differential equations in SageMath:
[http://doc.sagemath.org/html/en/reference/calculus/sage/calc...](http://doc.sagemath.org/html/en/reference/calculus/sage/calculus/desolvers.html)

Differential equation solving in Mathematica:
[https://reference.wolfram.com/language/ref/DSolve.html](https://reference.wolfram.com/language/ref/DSolve.html)

I feel that the difference between the two tools when it comes to this problem
really illustrates their core differences.

~~~
sunnyps
To be fair to Sage they have a more beginner friendly tutorial for solving
differential equations:
[http://doc.sagemath.org/html/en/tutorial/tour_algebra.html#s...](http://doc.sagemath.org/html/en/tutorial/tour_algebra.html#solving-
differential-equations)

~~~
pbhjpbhj
Not being a user of either program (but having an interest in maths) the most
immediate difference looks like Sage's insistence on declaring variables,
wouldn't allowing use without declaration be more appropriate ... what's the
rationale for that choice that I'm missing?

~~~
williamstein
Instead of creating a new programming language, SageMath uses the extremely
popular programming language Python (with some optional minimal preparsing).
Thus the language design decisions were mostly made by software engineers,
rather than mathematicians. That said, the only sense in which you have to
declare variables is that you can't just write x + y without any further
thought (you have to write "y=something" first). This avoids some mistakes due
to typos, which are common in Mathematica. It also makes it easier to endow
variables with more precise structure (e.g., make y a polynomial over a finite
field).

~~~
pbhjpbhj
Sounds like it would be relatively easy to then optionally pre-parse and
automate the variable declaration cutting input considerably (for those who
wished it) ... I'm sure that's been done already in such a long lived and
popular project.

Thanks for you response and insight. Must give sage a try again.

~~~
williamstein
Yes, I did implement that once. It's in the Sage Notebook (see here
[http://doc.sagemath.org/html/en/reference/notebook/sagenb/mi...](http://doc.sagemath.org/html/en/reference/notebook/sagenb/misc/support.html)),
but nobody implemented it for the command line, and I haven't reimplemented in
SageMathCloud worksheets yet. I've opened a ticket:
[https://github.com/sagemathinc/smc/issues/419](https://github.com/sagemathinc/smc/issues/419)

------
jbclements
I have a lot of bones to pick with Mathematica, but calling it "clunky" seems
like a stretch; my experience suggests that mathematica is the exact opposite
of clunky; it has so much silky chrome that I feel like it's completely lost
touch with its declarative core (if it ever had one).

~~~
thearn4
My experience with mathematica is that it becomes unwieldy as soon as you try
to build something non-trivial. But I don't have more that a few semesters of
use here-and-there during undergraduate studies.

I feel the same way about MATLAB too, though. For better or worse, I was
attracted to a Python scientific computing stack pretty early on.

~~~
superuser2
I'm not sure that you are supposed to use Mathematica to "build" things. It's
not that kind of programming language. Its designed-for use case is as a
cognitive/computational aid in attacking a specific problem one time, and then
having a record of your work. Not so much building software for repeated
execution.

~~~
adrianN
A large part of Mathematica is written in the Wolfram Language so I'm
reasonably confident that it is intended to be used for building real things.

------
yaseer
This is a fantastic project which I've used since leaving university, where
Maple and Matlab had reigned supreme. Many thanks for starting it.

As a software engineer, I was drawn to the Python foundations and extensible,
open source stack. Sage can be used for 'Programming in the large' where its
closed-source rivals cannot.

However, in a classroom environment, where one need only be 'Programming in
the small', teachers will not be concerned with this advantage. Sage suffers
from a competitive disadvantage to the marketing and UX/UI polish that
Mathematica and others provide.

As it stands, Sage's use-case would be for adept developers, working on Unix
systems, potentially building complex software. Mathematica/Maple/Matlab
arguably better fulfil the plug-and-play use-case of the classroom.

Hopefully we can help redress this imbalance in the open source community with
time.

------
brudgers
SageMath: [http://www.sagemath.org/](http://www.sagemath.org/)

I think this is a cool open source project. My sister is a teacher. I wouldn't
recommend this over Mathmatica to her. It's level of polish would require
attention that could better be focused on here students.

 _It builds on top of many existing open-source packages: NumPy, SciPy,
matplotlib, Sympy, Maxima, GAP, FLINT, R and many more._

Is just noise that doesn't solve her problems or help her students.

~~~
bla2
This announcement is for
[https://cloud.sagemath.com](https://cloud.sagemath.com) which seems to be
fairly easy to use.

------
amelius
I'm torn. On the one hand I think it is wonderful that scientific software
becomes open source, for the sake of human knowledge. On the other hand, I
know that it is very difficult to make money with scientific software.

So this makes me wonder: shouldn't creators of such open source programs be
paid like scientific researchers, e.g., through scientific funding?

Sometimes I feel that the work of a scientific programmer is not valued as
much as the work of a researcher (who churns out papers instead of code).
While on the other hand, everybody thinks it is immensely important that code
is open source.

So it is kind of a lose-lose situation for the programmer.

~~~
maxerickson
In this case one of the programmers is a researcher. That has applied for
grants to work on Sage. Grants that also funded other programmers (grad
students and the like).

[http://wstein.org/grants/](http://wstein.org/grants/)

~~~
gaius
Hmm. If I were an employee at Mathworks, I'm not sure how happy I'd be about
my taxes being used to fund putting me out of work. Nor is doing that, what a
researcher should be working on.

~~~
serpent101
But the only programmers that have a right to exist are web developers working
on SaaS applications, claiming that they own "their" whole stack (BSD, written
by other people) and hiding behind "safe harbor" clauses for large scale
copyright infringement!

~~~
gaius
Quite. I knew it would be an unpopular sentiment here. But I got karma to burn
:-)

------
cyphar
Great work. We need more free software alternatives to proprietary
juggernauts. I'm sad that GNU octave just isn't where it needs to be in order
to supplant MATLAB (but it is getting there). Quite a few researchers in my
faculty (including myself) use Python quite a bit, other use IDL (which has a
free compiler anyway). Not many use MATLAB, to be honest.

~~~
bsilvereagle
Unfortunately, even if octave can replace MATLAB the language, it's going to
take herculean effort to replace MATLAB the ecosystem. Replacing Simulink
alone is a huge undertaking, let alone trying to replicate SimMechanics, or
some of the other more niche toolboxes. Being able to run a control system
block diagram on arbitrary hardware (ARM boards, etc) is huge in the controls
world.

The places I see using MATLAB today rely on Simulink & SimMechanics, as well
as the Control Systems toolbox and the computer vision packages. OpenCV can
replace some of the CV stuff, but can't provide an integrated solution for the
controls portion.

~~~
joshvm
Ironically Matlab uses OpenCV for at least some of their vision toolkit - the
camera calibration and stereo processing functions for instance.

------
thetest3r
What about [http://mathics.github.io/](http://mathics.github.io/)?

~~~
williamstein
Thanks. I've created an issue to add mathics support (via the Jupyter kernel)
to SageMathCloud:
[https://github.com/sagemathinc/smc/issues/417](https://github.com/sagemathinc/smc/issues/417)
It's awesome that there's a free open source Mathematica-like program now.

~~~
sn6uv
Great idea!

I'm working on a fully featured jupyter kernel that will eventually get merged
into the main Mathics repo [1]. I was planning to inquire about some hosting
in a couple of weeks (once my exams are over and I have a chance to finish the
jupyter kernel off).

Edit: [1]
[https://github.com/sn6uv/Mathics/tree/jupyter](https://github.com/sn6uv/Mathics/tree/jupyter)

------
zallarak
The true value of Mathematica lies in its vast, high quality, integrated data
sets and domain specific algorithms. As far as a teaching tool for math, it
doesn't make sense to lock into a proprietary tool.

~~~
pjmlp
What open source tooling is up to the task to compete with the Wolfram tooling
in terms of UX and usability?

~~~
sn6uv
I'd say jupyter notebooks surpass Mathematica UX wise.

I maintain Mathics [1] which has it's own web interface e.g. [2]. I don't
think the Mathics interface is as nice as MMA but the documentation bar on the
side is really nice.

[1] [https://mathics.github.io/](https://mathics.github.io/) [2]
[http://mathics.angusgriffith.com/](http://mathics.angusgriffith.com/)

~~~
pjmlp
Interesting, thanks for the info.

------
yp
I love sagemath, on fedora installing it as simple as 'dnf install sagemath'.

------
benkant
Mathematica not being Open or free is the only complaint I buy. As for it
missing features, I'd wager adding them to Mathematica would be less work than
building a CAS from scratch with them- in which case I'm sure you'll be
missing features from the original.

~~~
swiley
We already have open source CASs (a handful in fact). So no one is "building a
CAS from scratch".

~~~
williamstein
Exactly. When I started SageMath in 2004, by design it built heavily on Pari,
Maxima, GAP, Singular, etc., which were all started in the 1990s (or earlier).

------
aerovistae
I think sagemathcloud has some issues that might need working out.

For instance, after creating an account, there was no way to log out! First
time I think I've ever seen that on the web. Probably clearing cookies should
not be my only way of logging out.

But I applaud your work!

~~~
aerovistae
Wait, found it. I have to go to my profile. Sorry, that is soooo counter to
standard web UX flows that I was really confounded by that. There should be a
little dropdown menu in the corner from which something like that can be
accessed anywhere!

~~~
williamstein
I've created a ticket:
[https://github.com/sagemathinc/smc/issues/418](https://github.com/sagemathinc/smc/issues/418)
(Nobody has complained about the sign out process before, so I haven't
prioritized it.)

------
jestinjoy1
I have been using it for Graph theory research. Most researchers at my univ
also uses it. Sagemath cloud is pretty interesting. With the power of Python,
I think sagemath can beat rather than compete with anyone.

------
macawfish
Sage is amazing for graph theory.

------
efm
sagemathcloud.org lets teachers, students and others use sagemath without
having to install anything.

------
hyh1048576
Sage is always the best on elliptic curve related stuff.

------
aaron695
> But installing SageMath was more difficult than ever.

??? I don't understand? Don't you just give users an exe.

~~~
jordigh
Not on Windows. I believe on Windows the installation method is to download an
Ubuntu VM with pre-built Sage.

~~~
williamstein
You are right. Despite many people (including me) trying very hard, nobody has
yet successfully ported Sage to properly to Windows. It's millions of lines of
code, and difficult to fully port due to many dependencies written by research
mathematicians that only support POSIX Unix. Also, I just counted support
requests at [https://groups.google.com/forum/#!forum/sage-
support](https://groups.google.com/forum/#!forum/sage-support) for this month
(Feb 2016) and nearly half of them are problems installing Sage. (Disclaimer:
I wrote the above blog post.)

