I initially wanted to do a small recap of vis.js so far but it became larger (and more off topic) than I expected. To understand some of the motivations for our roadmap, take a look at the post below this one first.
So now for our plans for 2015! We have added a lot of features over the last year, and we have to be careful that vis does not die of option-obesity. To mediate this we thought of a few solutions. Firstly, we will make the docs collapsible using a similar system to Jos′s great online JSON editor. This is naturally a temporary fix but the docs are one of the most important ways to get information. We think we ourselves may be the most frequent visitor of those pages so it's a good start!
Secondly, the actual changes, we plan to reorganize some of the option structure. This will unfortunately (but by definition) be a breaking change from our old versions. The new structure will be clearer and more intuitive. The work our current users will have to do to update will be minimal. If you're using the options we reorganize, you'll have to update your options. Breaking releases are always a shame, but we feel it is necessary.
The third step we want to take is to go over the code of each module and modularize everything much more. This will make the code easier to maintain as we move away from very large .js files, as well as make it easier to expand on.
Once everything is modularized, we want to change the API to allow users to plug their own parts of vis together. As an example: You start a network module, plug in the type of node module, edge module, physics module and optionally navigation module (etc.) and you're good to go! All of these modules will be individually configured. This means the huge list of options will be segmented into smaller, more manageable parts. Additionally, the docs will become smaller and clearer.
Of course, we do not want to abandon all our plug-and-play functionality! We will also start to supply more preconfigured constructors (i.e. a vis.BarChart that will give you a preconfigured graph2d module). Apart from these constructors we will continue to publish examples which will include code snippets that you can use in your own project.
Once this has been completed, we expect there will be more options that accept functions as arguments which gives you more control over vis. Finally, because everything (well, more than now) would be split up into modules, it becomes easier for the community to create additional modules, further improving vis!
The things I have listed here are the ideas that we have now. This is subject to change. We also cannot provide a timeline for this because we work on vis whenever we have time. No deadlines, no constrains, just when we have time.
To wrap up, there are a few things I did not mention here but I'd like to add to the post anyway.
- We want to improve the fusion of graph2d and the timeline, with the ideal that a graph2d can be used like a group in timeline now.
- Examples will be split in simple option/configuration examples and larger, feature demonstration/exploration examples.
- Graph2d will be expanded.
- We will move to hammer.js 2.0.
- We will add features from the list when we can
- We hope to keep up the
cation with our community!