Choosing the wrong framework or toolset can have obvious detrimental effects:
- Dependency on obsolete or legacy code
- Expensive re-write in the future or “technical debt”
- Difficulty in attracting talent (yes, good developers will shun a company still using Cobol etc. ;-))
- Wasted time learning short-lived frameworks
This post is intended to shed some light on the reasons some of these frameworks have stood the test of time (relatively speaking!) and how to compare them from a popularity point of view. No warranty is implied etc 🙂
Mootools vs Scriptaculous vs jQuery
It seems like an earthquake hit the mootools and scriptaculous developers sometime around 2008.
Its name was jQuery, and it consigned them to history:
The above chart demonstrates how insignificant both mootools and scriptaculous became when jQuery arrived.
Note “one of the most popular libraries” not “the most popular”, at the time. This was a revelation at the time, Microsoft actually using open source software. Things have moved on of course, with a lot of Microsoft code and frameworks being open source now.
So lesson number one in selecting a framework if you are concerned about its longevity – if one of the big guns (Microsoft, Google, Facebook, Twitter etc.) have adopted a framework, it’s likely to stick around for a while.
Knockout.js vs Backbone.js vs Ember.js vs Angular.js
Another area of web development where it’s great to see progress is in the MVC space – separation of concerns is a noble ambition and long been an issue on the web; each of these frameworks apply a Model-View-Controller type pattern which makes it easier to develop more complex user interfaces including single page applications, which are also easier to maintain.
Another glance at Google Trends (told you I liked it!) shows the following, looking for knockout.js, ember.js and backbone.js:
Backbone.js is clearly the most popular search term, however it is in serious decline, I wonder why? 🙂
Add Angular.js into the mix and you get a clue:
Angular.js is the green trend upward – almost surpassing Backbone.js, but not quite.
It’s even more telling comparing Knockout and Angular (which were two options for a recent project):
So why Angular.js? I’ll give you a clue: it’s written by Google… so lesson number one re-inforced!
Node.js vs PHP vs C# vs Ruby on Rails
When you compare with traditional alternatives (ok, maybe over-simplifying here..) such as PHP and C# you can see a few things:
- PHP is in serious decline (I don’t hear any complaints!)
- C# is fairly stable
- Both are currently significantly more popular (I expect node.js to step up in the next 2 years though!)
I was unable to get any meaningful comparison with Ruby on Rails, because guess what – a Ruby is a thing! So other people (not just geeks) will be searching for Ruby (person, gem, etc).
So lesson number 2 – only choose a framework which has a unique name! (only joking!! but only COMPARE frameworks in this way if they DO have a unique enough name!)
Preferably use jQuery, Angular.js if they meet your needs.
I won’t say what not to use, you can draw your own conclusions.
Happy coding – hope that helps!