Differential equation solving in Mathematica:
I feel that the difference between the two tools when it comes to this problem really illustrates their core differences.
Thanks for you response and insight. Must give sage a try again.
By the way, Mathematica's documentation contains lots of detailed examples hidden beneath those little disclosure triangles.
Mathematica says: You shouldn't have to know the minutiae about differential equations in order to solve them; we'll figure out the details for you!
SageMath says: We'll give you a buffet of solvers with different internals so you can pick the one that's right for your problem!
Both approaches have merit, and drawbacks. But if you asked me which approach I support, I'd have to go with Mathematica. Theirs is more ambitious, and far more powerful if they are able to "get it right."
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.
It suffers a little from the same sort of thing as Python: there is almost certainly a canonical, beautiful way of doing what you want to do, but you're going to have to sift through documentation to find 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.
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.
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.
Professional software is not like beer or cars, it's about providing the end user tools which maximizes their professional output.
(Making software is difficult. Adding publication pressure is not going to help the process.)
So, there is a second class of people, called scientific programmers, who might do what you imagined. However, their work is undervalued. For example, although they are often listed as authors of scientific papers, they will almost never be first author. And this type of people will also be the first to disappear if funding dries up. Further, when writing scientific proposals, nobody thinks about hiring a scientific programmer, or it comes as an afterthought.
There are now fellowships in the UK specifically aimed at scientific programmers: https://www.epsrc.ac.uk/funding/calls/rsefellowships/ . Even so, currently there no real career path for scientific programmers. Hopefully this will change in the future!
I think (or perhaps hope) the future may hold something different though. There are some industries such as bionformatics where the boundaries between science and scientific computing are being blurred. Whatsmore, I think this blurring of lines between science and computing will continue as a generally trend. Steven Wolfram (Mathematica's creator) articulated this, albeit poorly and hubristically in a "New Kind of Science". That work gained rightful criticism from the majority of the scientific community, but it did articulate a clear trend - scientific research and computation are becoming increasingly intertwined.
We may not differentiate so sharply between the types of work you describe in future, and perhaps value scientific programming more.
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.
I'm working on a fully featured jupyter kernel that will eventually get merged into the main Mathics repo . 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:  https://github.com/sn6uv/Mathics/tree/jupyter
It's analogous to the Octave/Matlab relationship.
The development team is also much smaller; I'm the only one contributing regularly to Mathics at the moment. Happy to answer questions.
I maintain Mathics  which has it's own web interface e.g. . I don't think the Mathics interface is as nice as MMA but the documentation bar on the side is really nice.
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!
??? I don't understand? Don't you just give users an exe.