Replies: 4 comments 3 replies
-
@rocky I'm not sure if I understand what you mean by the plots being "client-side", Symja also uses mathics-threejs-backend in some places. Also, talking about mathics-threejs-backend, its error is in Mathics side, all examples are working in the demo and in Symja. |
Beta Was this translation helpful? Give feedback.
-
@TiagoCavalcante I could be wrong, but the 2D plots I believe call javscript functions for things like Sin, Cos, rather than have Java compute values, right? Of course, I know that mathics-threejs-backend is used in Symja. I am talking about 3D plotting not 3D graphics shapes. Mathics doesn't have slowness with 3D graphics shapes any more. |
Beta Was this translation helpful? Give feedback.
-
@alfredwassermann: allthough I've never tried, I think a similar approach to the |
Beta Was this translation helpful? Give feedback.
-
A first JSXGraph implementation can be found here: |
Beta Was this translation helpful? Give feedback.
-
Recently I took a look at Symja or also https://symjaweb.appspot.com/ (which keeps looking more and more closely like our Django app), and I was pleasantly surprised.
Do I think that we in Mathics should pack it up and retire? No. I don't think Symja would have gotten to where it is were it not for Mathics. There are and always will be areas where one has strengths and weaknesses and we can learn from each other. Also, just as Axel is not a Python programmer, I am not a Java programmer. (I could be talked into Rust, but that is a topic for a different discussion)
Personally, I don''t mind that Symja copies Mathics. This is the spirit and nature of Open-source and GPL code. So in my view this is to be expected and is fine. There is a saying that imitation is the sincerest form of flattery.
As mentioned above, Mathics can learn and copy from Symja some of which I will mention below. In fact, a number of times Axel has made suggestions.
When I look at the Symja code, I don't find the same bone headedness that I find myself constantly trying to rid ourselves of in Mathics. Here are a few examples:
There was recent discussion about whether attributes which are constants could capitalized? Well, Symja also uses all-capital letters for those attributes.
Most important though is that a lot of the Mathics slownesses Mathics has, it doesn't have.
In particular, it runs Rubi. This has nothing to do with it being written in Java versus Python.
It has to do that it doesn't follow the historic Mathics bone headedness that two years into this, we are still trying to dig ourselves out of. Symja is strictly an tree (or AST) interpreter. So this is encouraging.
This says that you can get reasonable speed for interactive plotting without compilation. (But my view though adding compilation is needed to get the order of magnitude speedup that Mathematica has overall.)
But let me also mention that my view the misdirection in Mathics caused by the vagueness and lack of clarity in thinking of the kind that allows calling an element or node in a tree a leaf or calling "eval" "apply" is directly related to the pitfalls has Mathics, and that Symja doesn't have.
One of the encouraging I learn from Symja is that 3D plots don't have to be so slow as they are in Mathics.
I believe the reason here is basically that if you let Javascript compute plots, it can do it much faster than doing it in Mathics as its slow interpreter is currently written. Of course, there is value in allowing a user to decide whether to run the code on the server side or the client side, (here in Javascript or in Mathics Python). And in some cases, we'll have to run some things in Mathics because we don't have some functions in Javascript. But one of the successes we have had is the JSON API for 3D Graphics objects (not graphs or plots) and we need to expand the JSON API for plotting.
To the extent we can use Symja's API for 2D and 3D plots, in my view, Mathics should do that.
After the next release, we will focus on cleaning up Boxing and Formatting. I hope as part of that we also expand the JSON API.
I want to explore using or building off of Symja's 2D and 3D plotting API.
Beta Was this translation helpful? Give feedback.
All reactions