Introduction
Sencha recently released Ext JS 5, and we have received lots of positive feedback from our customers and community. Beyond the addition of tablet support, MVVM and many awesome new features, we really wanted to prove that Ext JS 5 is engineered for performance and is the best choice for building enterprise web applications.
Performance is something that every developer should care about — and Sencha has spent considerable effort over the past several years helping our customers understand best practices and performance tweaks to fine tune their applications. You can find dozens of presentations on performance from SenchaCon and our webinar series on Vimeo, as well as many articles right here on our blog.
But performance is absolutely critical in the enterprise, where data sets can reach into the hundreds of thousands of records and projects have very tight timelines. The Ext JS grid has long been the best choice for displaying enterprise data sets, and Ext JS 5 delivers performance improvements and many new features like Grid widgets and improved charting. Combined with our Class System and support for both MVC and MVVM architectures, building high performance enterprise applications has never been easier!
Sencha carefully crafted Ext JS 5 to deliver powerful enterprise applications across a wide variety of devices and platforms, and we firmly believe Ext JS 5 is the world's most advanced multi-device JavaScript framework. We even modified a simple test on JSPerf.com to illustrate how Ext JS stands up to enterprise data sets!
Goals for Ext JS 5
When we first began planning for Ext JS 5, our team discussed three overarching goals for the framework:
- Ext JS 5 should be Engineered for business applications, achieving top performance and scaling with the largest apps and development teams.
- Ext JS 5 should increase Productivity by supporting our customers' needs, offering highly customizable widgets and predictable software delivery.
- Ext JS 5 should be Evolutionary by enhancing framework agility, adapting best practices, and maintaining both backward and forward compatibility.
In short, enterprise applications were a top priority for Ext JS 5. With more than 60% of the Fortune 100 using Sencha frameworks, it's clear that Ext JS has experienced immense success - and Ext JS 5 continues to deliver.
Download Ext JS 5 and see for yourself how it has been engineered for performance.
@Daniel – to your point about the comparison “not being fair”, keep in mind that there are no exact apples-to-apples comparisons between frameworks. You could argue “Angular does this” while “Ext JS does that” all day long… and I do think I’m pretty fair in my explanation of that test. I’m not sure what you mean by the “double data binding” though, but then again I’m not (and never claimed to be) an Angular JS expert.
In any case, my personal opinion is that people put way too much stock in JSPerf results. Looking at the example I linked, I’m the 45th revision(!!!) of more than 50 – and almost every one tweaks the output for their own gain. When you watch the video, you’ll see the point I’m making is that Ext JS is engineered to handle incredible large data sets because peak application performance is maintained.
This is not a performance post, but a marketing post !
And on top of all this the comparison is not fair, as in your example, Angular provide the double data binding where ext doesn’t !
Use “bind-once” directive instead and re-run the test and then we will be able to discuss the results :-)
>>> And on top of all this the comparison is not fair, as in your example, Angular provide the double data binding where ext doesn’t !
Daniel Kobler, it would appear you are not well informed.
Ext JS 5 provides two way data binding. Is this would you mean by “double data binding”?
Here’s an example:
http://dev.sencha.com/extjs/5.0.0/examples/kitchensink/#binding-two-way
Comapring AngularJS and Ext JS is rather silly since AngularJS feel more like programming languare whereas Ext JS 5 is a full-blown JS framework with a rich component set.
Two Way Data Binding
I do not know much about js but it took me 30s to find this:
http://www.angularjshub.com/examples/basics/twowaydatabinding/
@Les – Ext JS 5 does support two-way data binding… but in Daniel’s defense, my example doesn’t use it. This is all part of the apples-to-apples argument I referred to, where we could go all day long building examples that show one thing or another and get nowhere.
I didn’t use JSPerf to take a shot at Angular JS in particular, that test existed long before I found it and modified it for this post. I’d prefer to stick to the high level points that Ext JS handles larger data sets really well, and that “performance” and “productivity” are best seen as complimentary concepts (because they’re often discussed independently).
Hi all,
I know that perf. is always a tricky part…
The only thing I was mentioning is that Angular by default have the “two way data binding” enabled, so this makes a huge difference in term of performance, especially with list of element (ng-repeat) …
And you’re right, the two framework shouldn’t be compared, cause they are so different, but in this sample you were only comparing XTemplate with angular directive ng-repeat in order to produce html, so in this case, yes this is possible to compare, and in this case you should use the bind-once directive (https://github.com/Pasvaz/bindonce) that will not use the “two way data binding”.
Best
Daniel
Thanks for this post – the Japanese translation is here: http://www.xenophy.com/sencha-blog/11316
The video with Japanese subtitles is here: https://vimeo.com/99803013
I’m running FF31(alpha 9) on MacOS 10.9.4 and my results provide the same conclusion as your test run on JSperf. Essentially, the conclusion I saw was that AngluarJS was better with small data-sets whereas ExtJS excelled at much larger data-sets.
Since I expect to handle large amounts of data, the choice is clear. ExtJS will perform better than the “other framework.”