New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inspiration Thougths #1

Open
mac-r opened this Issue Jun 2, 2013 · 1 comment

Comments

Projects
None yet
2 participants
@mac-r

mac-r commented Jun 2, 2013

@zuhao,

You are doing extremely valuable work! I am a mentor from another SciRuby project and other Ruby initiatives in the context of predictive analysis in Ruby.

I'd like to share some of my thoughts with you and hope that they will help you make this project an extremely valuable library for the whole our community:

1. Build a plotting grammar, but not another wrapper.

Rubyvis is used for visualizing data in a pretty conventional way. In fact there is no need for Rubyvis to have such complex DSL as there is. Protovis with a ruby wrapper like Rubyvis is a great attempt to make a great SVG/PNG plotting library. But there were many mistakes in the concept. Repeating these mistakes in the wrapper for D3 is a bad idea, Community doesn't need low level API from D3. It needs a dead simple DSL, which will generate sexy diagrams. Ruby community will greatly appreciate a contribution like this.

2. Use high level API for D3. There are great solutions for that.

Low level D3 wrapper is a bad idea. Many practitioners will agree. Currently people work with Vega (https://github.com/trifacta/vega). It is a JSON based plotting grammar for D3. Currently if there is any need to build many different plots people use Vega. This is a great library, which can make Ruby more appealing in the context of data analysis. There should be a wrapper for Vega (in fact it will be a wrapper for D3).

3. Follow ggplot2 as best practice.

Everyone understands, that Ruby community needs gems which will make plotting with Ruby pleasurable. Until there is nothing for this, people use other solutions. Some of them use Pandas, some other researchers use built in R/Matlab/Octave libraries. You should know that there is the only best library in the world, which makes data science really productive. This is the R package called ggplot2. Just look here to understand what features it provides: https://www.google.ru/search?q=ggplot2&client=ubuntu&channel=cs&aq=f&um=1&ie=UTF-8&hl=en&tbm=isch&source=og&sa=N&tab=wi&ei=88erUYOiB4aj4gS6o4CYCQ&biw=1301&bih=682&sei=9cerUerIAaSH4ATavIHgDw

ggplot2 is a package, which is extremely difficult to compete with. Ruby community has the only chance to win the battle if we take ggplot2 grammar with Vega + D3 wrapper. If this will be completed then we can make sure that there is a Ruby plotting library, which is the best plotting solution in the world.

Best,
Max

@zuhao

This comment has been minimized.

Show comment
Hide comment
@zuhao

zuhao Jun 3, 2013

Owner

Thanks a lot for the suggestions, @mac-r.

I agree with you and in fact I've brought up similar concerns in the very beginning, but at that time the other mentors seemed to be okay with the approach so I proceeded. However it's still in a very early stage now, and I'm open to any changes, whichever serves the community best. :)

I've started a discussion in the mailing list so that hopefully it reaches more SciRuby developers. We'll see what others think of this issue.

Again, I really appreciate your valuable thoughts.

Owner

zuhao commented Jun 3, 2013

Thanks a lot for the suggestions, @mac-r.

I agree with you and in fact I've brought up similar concerns in the very beginning, but at that time the other mentors seemed to be okay with the approach so I proceeded. However it's still in a very early stage now, and I'm open to any changes, whichever serves the community best. :)

I've started a discussion in the mailing list so that hopefully it reaches more SciRuby developers. We'll see what others think of this issue.

Again, I really appreciate your valuable thoughts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment