Monday, 19 November 2012

Speed comparison of JavaScript charting libraries


Choosing a charting component for any organization is a complex task because the selection will have to be made considering both the present and future needs of the organization. It requires a careful evaluation of requirements.
In this section, I have compared some of the popular charting components suitable for hybrid app development –


S No
Description
Charts
Advantage
Remark/Comment
1
Using <div> tag as placeholder for charts helps developer to adjust height/width eaisly into the HTML page
amCharts
  
Uses <div> tag
Highcharts
  
Uses <div> tag
RGraph

Uses <canvas> tag
Flot
  
Uses <div> tag
ZingCharts

Uses <canvas> tag
2
<div> tag is supported by all browsers whaeras <canvas> is a new HTML standard.
amCharts
  
All browser support
Highcharts
  
All browser support
RGraph

Only supported by HTML5 compliance browsers
Flot
  
All browser support
ZingCharts

Only supported by HTML5 compliance browsers
3
SVG scene graph is a old and stable way to represent graph/chart. SVG is like a "draw" program whereas HTML5 is a "paint" program and is a new concept.
amCharts
  
Uses SVG scene graph
Highcharts
  
Uses SVG scene graph
RGraph

Uses HTML5 Canvas
Flot

Unknown
ZingCharts

Uses HTML5 Canvas
4
Can eaisly change according to the landscape/potrait orientation of the device.
amCharts
  

Highcharts
  

RGraph

Difficult to achieve this functionality in RGraph
Flot


ZingCharts


5
Enables event handlers to be associated with objects
amCharts
  

Highcharts
  

RGraph

Not possible
Flot

Unknown
ZingCharts

Unknown
6
Includes meter charts
amCharts

Meter charts not supported
Highcharts
  

RGraph
  

Flot

Meter charts not supported
ZingCharts

Unknown
7
High quality.Nice visually.
amCharts
  

Highcharts


RGraph


Flot


ZingCharts
  

8
3D Charts
amCharts
  

Highcharts


RGraph


Flot


ZingCharts
  

9
Good Documentation and Online Support
amCharts
  

Highcharts
  

RGraph
  

Flot

Limited Support & documentation
ZingCharts
  

10
Build chart online with the help of Chart builder
amCharts


Highcharts


RGraph


Flot


ZingCharts
  


From the above comparisons it is quite obvious that each charting tool has its pros and cons. But, as per my view there is a competition between Highcharts and amCharts.
When I started with charting I found amCharts to be more documented and user friendly than Highchart, but if you check on the net, there is huge fan base for Highchart!
Think twice if you want meter charts, amCharts do not support meter charts and is a big disadvantage in this area. If you are looking for visuals, amCharts are smooth and nice with 3D chart support.

Reference links -
https://developers.google.com/chart/interactive/docs/gallery/controls#programmatic_change
http://bimeanalytics.com/blog/which-chart/

Sencha Touch vs jQuery Mobile: High Level Review

Cross-platform development tools are used for developing mobile applications that can be deployed in multiple platforms. Sencha Touch is a framework which uses Web standards for creating mobile applications. jQuery Mobile is a jQuery based framework which can be used for designing and developing web applications for mobile..

jQuery Mobile - jQuery Mobile announced in August 2010. It takes a similar – but more standards-compliant – approach to jQTouch and feels very much like that framework’s successor, with a broader array of UI controls and styles.
jQuery Mobile’s performance is variable, particularly in responding to tap events rendering animations.

Sencha Touch - Sencha Touch is the mobile counterpart to the Ext JS framework. Its approach differs significantly from jQuery Mobile: instead of enhancing preexisting HTML, it generates its own DOM based on objects created in JavaScript. Working with Sencha feels a little less “webby” and a little more like building apps in other technologies like Java or Flex.

Selecting a suitable UI framework is very important for the success of any mobile web application development. Knowing the strength and weakness of these frameworks will help the platform selection an easy process. Based on some important parameters which will influence the platform selection, I have listed below a summary of comparison.

jQuery Mobile
Sencha Touch
jQM is based on the popular framework jQuery.  This is prevalent in the script loads as well. It's Lightweight.
ST on the other hand loads one file with ExtJS framework requirements in addition to the Touch framework.
jQM, lists support for iOS, Andriod, BlackBerry, bada, Windows Phone, palm webOS, symbian, MeeGo.Latest stable version is 1.2.0.
ST v1.1.1 supports, iOS, Android and BlackBerry. Latest release is 2.1(in beta version).
No MVC. Lot of care has to be taken while organizing the code.
ST is based on ExtJS 4 and brings the MVC pattern to the table.
Some transitions are not very smooth.
The transitions are seamless and very smooth.
Active ecosystem. Lots of plugins.
Difficult to design layouts.
Finer control of the HTML. Can use full power of HTML5

Easier to find errors
Too much dependence on global variables. Debugging mess.
Dead easy to make themes. Have an online ThemeRoller! (http://jqueryui.com/themeroller/)
Difficult to theme. Requires messing around with JS and SCSS.
Supports majority of the browsers (http://jquerymobile.com/gbs/)
Can be used for mobile site as well as mobile app (embedded webkit)
Only supports webkit based browsers.
Development is open and happens publicly with the support of the community.
The code repo is available to you on only if you purchase support and development is mainly done within Sencha company.
It's jQuery! It’s handy!
Learning curve is required to learn the ST framework, understand the documentation styles, and implement the application and features necessary to build an application.
Need to handle reliability and performance for complex applications.
Better performance.

If you want to build an iOS app then you may go for Phonegap + sencha because sencha makes it looks like a real native app and has explicit iPad support. It will work very well for iPhone. But if you want to port the same app in Android, you need to rethink; it is slower in android due to low hardware specs. It is somewhat better in HTC, S3 and other high end android devices because of their good specs.

If the requirement is to develop a large enterprise application with lots of emphasis on performance, security, extensibility etc, opting for Sencha Touch could be a good decision. But if you are looking for simple web based and very less time to market applications, jQuery Mobile could be a good decision because of its simplicity and its very Web-centric approach to development.

Reference Links :
http://mhorner.blogspot.in/2012/02/sencha-touch-vs-jquery-mobile-high.html
http://www.fusonic.net/en/blog/2012/06/26/sencha-touch-vs-jquery-mobile/