Below is the list of modern JS frameworks and almost frameworks – React, Vue, Angular, Ember and others.
All files were downloaded from https://cdnjs.com and named accordingly.
Output from ls
command is stripped out (irrelevant stuff)
$ ls -lhS
566K Jan 4 22:03 angular2.min.js
563K Jan 4 22:05 angular2.0.0-beta.0-all.umd.min.js
486K Jan 4 21:50 ember.1.13.8.min.js
435K Jan 4 21:48 ember.2.2.0.min.js
205K Jan 4 22:06 angular2.0.0-beta.0-Rx.min.js
144K Jan 4 21:59 react-with-addons-0.14.5.min.js
143K Jan 4 21:46 angular.1.4.5.min.js
132K Jan 4 21:56 react-0.14.5.min.js
121K Jan 4 21:35 angular.1.3.2.min.js
5.3K Jan 4 22:00 redux-3.0.5.min.js
706B Jan 4 21:57 react-dom-0.14.5.min.js
63K Oct 13 03:02 vue-2.0.3.min.js
# 2017
91K Dec 27 12:24 react-dom-16.2.0.production.min.js
6.5K Dec 27 12:22 react-16.2.0.production.min.js
Name | Size |
---|---|
Ember 2.2.0 | 435K |
Ember 1.13.8 | 486K |
Angular 2 | 566K |
Angular 2 + Rx | 766K |
Angular 1.4.5 | 143K |
Vue 2.4.2 | 58.8K |
Inferno 1.2.2 | 48K |
Preact 7.2.0 | 16K |
React 0.14.5 + React DOM | 133K |
React 0.14.5 + React DOM + Redux | 139K |
React 16.2.0 + React DOM | 97.5K |
$ gzip -r .
$ ls -lhS
123K Jan 4 22:11 ember.1.13.8.min.js.gz
119K Jan 4 22:11 angular2.0.0-beta.0-all.umd.min.js.gz
111K Jan 4 22:11 ember.2.2.0.min.js.gz
111K Jan 4 22:11 angular2.min.js.gz
51K Jan 4 22:11 angular.1.4.5.min.js.gz
45K Jan 4 22:11 angular.1.3.2.min.js.gz
42K Jan 4 22:11 react-with-addons-0.14.5.min.js.gz
39K Jan 4 22:11 react-0.14.5.min.js.gz
32K Jan 4 22:11 angular2.0.0-beta.0-Rx.min.js.gz
1.9K Jan 4 22:11 redux-3.0.5.min.js.gz
455B Jan 4 22:11 react-dom-0.14.5.min.js.gz
23K Oct 13 03:02 vue-2.0.3.min.js.gz
#2017
29K Dec 27 12:24 react-dom-16.2.0.production.min.js.gz
2.8K Dec 27 12:22 react-16.2.0.production.min.js.gz
63K Dec 27 13:18 aurelia-core-1.0.2.min.js.gz
Name | Size |
---|---|
Ember 2.2.0 | 111K |
Ember 1.13.8 | 123K |
Angular 2 | 111K |
Angular 2 + Rx | 143K |
Angular 1.4.5 | 51K |
React 0.14.5 + React DOM | 40K |
React 0.14.5 + React DOM + Redux | 42K |
React 15.3.0 + React DOM | 43K |
React 16.2.0 + React DOM | 31.8K |
Vue 2.4.2 | 20.9K |
Inferno 1.2.2 | 20K |
Preact 7.2.0 | 4kb |
Aurelia 1.0.2 | 63K |
Also take a look at this awesome tool https://cost-of-modules.herokuapp.com created by @pastelsky
Really insightful stuff.
So glad I don't depend on JS or CSS frameworks other than my own (had the fortune of starting off back in the day when jQuery and Mootools were kicking off).
Huge bloatware really for most situations. It seems like developers have completely lost the understanding that load times are important for people who want information fast. There was a time when a flashy fade or a smooth dropdown menu was a wow factor but now, people simply want to get to information fast. If you removed all the whizz and the fades most wouldn't even question where it had gone.
You have dropdown menus loading 50 options with sub-options for no reason when a granular menu could be achieved on demand with screen refreshes. A screen refresh isn't a bad thing if the content it cached on the previous screen is so tiny it makes the next screen load like lightening. It's as if they think loading absolutely all your content at the start is going to make a faster experience for the end user only they miss the part that, if the initial load takes ages to happen, most people get frustrated and leave or the site is so bloated their browser hangs. If that doesn't happen, even a refresh still takes ages to process again because the cached content being re-used is so massive.
The worse one really is the calls to go back over the DOM HTML and then start applying things to it onDOMReady style.
Needless reasons to go and select checkboxes by fetching all elements of a certain type when the checkboxes could have been pre-selected when their HTML was created. Dozens of these onDomReady processes adjusting things in the background, making subsequent background calls to fetch things that MIGHT get clicked on by the user but all ultimately adding to the clunky slow loading experience on initial entry to a website.
I've seen developers force end users to download 1MB-2MB of frameworks (CSS, JS, pre-loaded images) so they can do a background call or make a box fade into view. Feel sorry for the 4G mobile users mostly. So many websites take 30 seconds to load properly before you can even read a page and that's connected to your local network!
The assumption that everybody has fast networks speeds is an example of how enclosed developers are becoming.
As long as it works fast on their latest Apple Mac with 600MBps connection then surely it will work for John down the road in a factory trying to view it on his 4 year old phone with 4G trying to order parts quickly in his lunch break. Pretty sure John doesn't care if the drop down menu slides in or not.
Great eye opener all the same with your examples.
Thank you.
RIP MooTools.