Next Steps

So, I’ve done some debugging of the Parser class. Most bugs that I found were typos or cases where I missed a “this.” or a class name before a constant. Since I catch these problems only if the code is executed, I think it is not very efficient to try to debug everything at this point; it should be easier to check more examples once all of the code is ported to JavaScript.

It also became clearer what the next steps should be. For a long time I had assumed that I would port the rendering of graphics before the evaluation of symbolic expressions (i.e., in the order in which these features were implemented originally). However, I have implemented large parts of the Expression and Evaluator classes already in order to debug the Parser class; thus, it’s more natural to finish the implementation of these classes before starting with the rendering of graphics.

Thus, the next steps are probably:

  • evaluation of expressions (Expression and Evaluator classes)
  • preprocessing of graphics primitives (Graphics3D class)
  • rendering of graphics primitives (except formatted text) (Graphics3D class)
  • processing of graphics options (Graphics3D class)
  • rendering of formatted text (Graphics3D class and TextElement class)
  • user interaction (Live class)

I think most of this should be straightforward … maybe with the exception of formatted text. And mouse events are probably as weird as they are in Java applets. And it only gets worse if I want to support single-touch, multi-touch, and touch-pad events on mobile and desktop systems running Windows and macOS …

OK, I better stop worrying about future stuff now.