190 karma · joined March 7, 2015
It certainly isn't to the d3 level yet, but almost everything is exposed and extensible with the new API so you can create most any chart you can think of.
2. Canvas vs SVG: For my use case, using SVG for lots of data points really slowed down the DOM. Canvas doesn't have that limitation and is easier to export to images if necessary. SVG is nice because you can use CSS to style things.
- Github Organization: Moved from github.com/nnnick/Chart.js to our own org, github.com/chartjs/Chart.js, where we hope to continue to grow the awesome community
- Scales: New time axis, log axis and multiple axis support
- Animations galore: Just about everything animates now, from adding/removing datasets, updating data or even changing colors. Based on canvas, animations run at 60fps even with tens of thousands of data points
- Dynamic config: It used to be difficult to interact with a chart after creating it, but now it is as simple as changing the object and calling the update function
- Mixed charts: It is now trivial to put a line on a bar chart or whatever combination floats your boat
- Legends: Now supported for all chart types, they can be placed anywhere on the canvas and support toggling data visibility by default
- Chart types: More charts supported out of the box, including stacked area/bar and bubble charts
- Labels: Built-in chart titles and axis labels make it easy to understand your data
- Responsive and mobile ready: Charts, labels and legends all scale down to accommodate any screen size out of the box, with touch event support
- too much awesomeness to list here
Moving forward, the core team is committed to a faster release cycle. Version 2.1 is slated to come out in the next week with:
- Plugin support: Add optional support for features like zoom/pan (forthcoming) without adding bulk to the core library
- Shared data between charts
We'd love your help, so please join and contribute! We have a very active Slack community that you can join at https://chartjs-slack-automation.herokuapp.com. We'd love to add new chart types and to get the documentation translated, so if you think you can help, we'd love to have you!
- Github Organization: Moved from github.com/nnnick/Chart.js to our own org, github.com/chartjs/Chart.js, where we hope to continue to grow the awesome community - Scales: New time axis, log axis and multiple axis support - Animations galore: Just about everything animates now, from adding/removing datasets, updating data or even changing colors. Based on canvas, animations run at 60fps even with tens of thousands of data points - Dynamic config: It used to be difficult to interact with a chart after creating it, but now it is as simple as changing the object and calling the update function - Mixed charts: It is now trivial to put a line on a bar chart or whatever combination floats your boat - Legends: Now supported for all chart types, they can be placed anywhere on the canvas and support toggling data visibility by default - Chart types: More charts supported out of the box, including stacked area/bar and bubble charts - Labels: Built-in chart titles and axis labels make it easy to understand your data - Responsive and mobile ready: Charts, labels and legends all scale down to accommodate any screen size out of the box, with touch event support - too much awesomeness to list here
Moving forward, the core team is committed to a faster release cycle. Version 2.1 is slated to come out in the next week with: - Plugin support: Add optional support for features like zoom/pan (forthcoming) without adding bulk to the core library - Shared data between charts
We'd love your help, so please join and contribute! We have a very active Slack community that you can join at https://chartjs-slack-automation.herokuapp.com. We'd love to add new chart types and to get the documentation translated, so if you think you can help, we'd love to have you!
As for moving from Ruby to Rust or Go, Go is almost guaranteed to be faster for developers to learn. The reason for the complaints in the article is that Go is intentionally simple, and you're seeing many people migrating from dynamic languages to Go for those benefits. The fact that Go has its roots in C will make it immediately understandable to anyone with experience in a C-type language.
My final thought is going to address libraries and widespread acceptance. Regardless of your thoughts about Go as a language, there is no doubt it is here to stay. Underlying major technologies like Docker, it has already seen massive adoption. While initial signs are positive for Rust, you're still betting that it continues to build momentum and doesn't stagnate like Haskell.
The main difference appears to be that Throttler wants to know the total number of jobs up front and so doesn't need to be told that a new job is starting, where Gate more closely follows the WaitGroup concept of incrementing and decrementing the counters manually.
Group is also interesting, but I don't mind running my own error channels and executing my own routines so that I have a little more control.
Throttler fills the gap between sync.WaitGroup and manually monitoring your goroutines with channels. The API is almost identical to Wait Groups, but it allows you to set a max number of workers that can be running simultaneously. It uses channels internally to block until a job completes by calling Done() or until all jobs have been completed.
See a fully functional example on the playground at http://bit.ly/throttler-docs