MarkUs Blog

MarkUs Developers Blog About Their Project

Data Display and Graphing Poll

with 8 comments

Hora and I have been experimenting with a number of possible options for graphing data in MarkUs. We have narrowed down our options to two javascript frameworks and are going to use this blog post to solicit input from the Markus community.

Highcharts

Highcharts is a commercial javascript graphing library.  However, they have released their software under a creative commons license for use in non-commercial projects.  Additionally, lazy_high_charts is a rails plugin which allows for simple integration of highcharts into rails projects.

Samples

Pros

  • Thanks to lazy high charts, most of the programming can be done in the controller.  This leads to cleaner code.
  • Graphs are very attractive, animations are professional.
  • Dynamically hide single items in a chart. Example, don’t show one of the TAs.
  • Lots of options for creating charts
  • Great documentation

Cons

  • Built on JQuery.  Markus uses Prototype which can have conflicts with JQuery.  In the few tests we’ve done several javascript errors were reported.
  • As a commercial product, we are unsure about the future possibilities for use.  Licenses can change.

Bluff

Bluff is a JavaScript port of the Gruff graphing library for Ruby.  It is pure javascript and has no conflicting dependencies.

Samples

Pros

  • Small javascript files, with no dependence on JQuery.
  • Easy to generate graphs quickly.
  • MIT License, so no conflicts with Markus.
  • Simple, attractive graphs.

Cons

  • Code must be written in Javascript.  This means that most of the work will be done in the view, which creates ugly code.  If we choose this path, a set of ruby helper methods (or a rubygem) could be created to clean up the code.
  • More simplistic than Highcharts.
  • API exists, but doesn’t provide a lot of examples.

Conclusions

Both graphing methods work well.  Highcharts produces a cleaner code base but has some implementation issues and is (sort of) proprietary.  Bluff is completely open source but will involve embedding javascript into views (or partials).  If anyone has opinions either way please sound off in the comments.

Written by kurtis

October 17th, 2010 at 10:37 pm

Posted in Uncategorized

8 Responses to 'Data Display and Graphing Poll'

Subscribe to comments with RSS or TrackBack to 'Data Display and Graphing Poll'.

  1. Kurtis / Horatiu:

    Thanks for the write up!

    Of the two, I think I prefer the looks of Highcharts – and I know that jQuery+Prototype *can* work with tweaking: http://docs.jquery.com/Using_jQuery_with_Other_Libraries

    Or is there something else that’s preventing us from using jQuery + Prototype that I’m not considering?

    -Mike

    m_conley

    17 Oct 10 at 10:49 pm

  2. The only problem that seemed to exist with Highcharts was jQuery.

    However, after looking into it I noticed that someone wrote a Prototype adapter (http://github.com/mnelson/Prototype-Highcharts-Adapter/blob/master/highcharts-adapter.js).

    I guess Hora didn’t notice that when he was doing the testing.

    kurtis

    17 Oct 10 at 11:05 pm

  3. Mike: We were also worried that two libraries might slow down load times for certain pages and that it could lead to confusion and harder JS debugging.

    Kurtis: Great find! I admit I didn’t search too extensively for alternatives to jQuery with Highcharts. If that works well, then that sounds like the best option to me!

    horatiu

    18 Oct 10 at 3:16 am

  4. What about Dina’s work ?

    I remembered Dina worked on a solution to have graphics in the dashboard page. Will you reuse her work ?

    (her review on review board is still a svn one, but was quite usable)

    Benjamin Vialle

    18 Oct 10 at 8:54 am

  5. To be honest Highcharts looks nicer, but I’d still recommend to use Bluff. The main concern I’m having is that Highcharts is non-free licensed. Even thought they allow to modify their code, I think it wouldn’t be a good idea to add this as a dependency.

    MarkUs is MIT and Bluff is MIT and GPL licensed. As Kurtis pointed out already there won’t be a licensing problem. Besides, with some CSS tweaks we should be able to get nice looking graphs using it too. I actually like that it’s plain JavaScript. Wrapping it in some rails plugin/rubygem is a nice to have but not required.

    In short, if we could get Highcharts to MIT-license their library go for it. If they don’t, Highcharts is a no-go for me, sorry.

    I’m voting for Bluff 🙂

    Severin

    18 Oct 10 at 3:09 pm

  6. I really like the look of Highcharts as well, but I think I would vote for bluff. It seems like it would not have as many potential problems in the future, and I am sure that with a little effort we could change the graphs to look just as nice as Highcharts examples that you have! Of course, I really like messing around with things to change how they look, maybe not everyone would enjoy that so much 😉

    Evan

    20 Oct 10 at 7:33 pm

  7. As Severin and Evan, I am voting for Bluff (Open Source licensed software).

    Benjamin

    21 Oct 10 at 11:58 am

  8. Bluff’s fine with me, too. 🙂

    Mike C

    21 Oct 10 at 10:31 pm

Leave a Reply