Making beautiful output using SVG and JavaScript

The charting functionality of SOFA Statistics is not available yet but the technology required is coming together. At the current time the intention is to use the gRaphaelJS library (http://g.raphaeljs.com/) to create the charts and wxWebKit (wxWebKit progress) to display it. The goal is to have beautiful output without using a proprietary technology such as Flash (which also has printing problems). The gRaphaelJS library is still only version 0.2 but progress has been rapid. DmitryBaranovskiy is doing a great job (http://github.com/DmitryBaranovskiy/g.raphael/).

2 Responses to “Making beautiful output using SVG and JavaScript”

  1. I am dabbling with wxWebkit right now, and SVG hasn’t been implemented yet. Unless I am missing something.

    I have been playing around with SVG also, and initially I tried using Raphael, but the code is quite a mess. I spent a few days going through the code with a fine tooth comb, line by line, and in the end decided to write my own tools, which really was a lot easier. Extending Raphael to do something it doesn’t already do seems very difficult.

    Considering that you are only targeting one platform(Webkit), you don’t need much of what Raphael offers.

    SVG is not too difficult to work with natively and your code will be much tidier and simpler in the end than Raphael.js.
    Raphael, much like many JS libraries out there on the net lean in the direction of code economy, rather than clarity, and for any long term project, code clarity is a very high priority.

    Thats my 2 cents…

    Good luck mate!

  2. admin says:

    Thanks for the feedback Philip.

    One of the main wxWebKit developers, Kevin Ollivier, is planning to add SVG to wxWebKit by late spring or early summer (northern hemisphere).

    Good point about having just the one target – wxWebKit – and thus a reduced need to cover all contingencies in the handling of SVG and Javascript.

    I am also considering Dojo (http://www.dojotoolkit.org/) but I guess the same issues apply.

    The most likely starting point is Dojo and possibly a rip-and-replace with my own code later on.