JavaScript Framework Wars Collateral Damage

You can almost calibrate an atom clock hourly by the intervals at which new JavaScript frameworks arrive.

One main reasons is that JavaScript frameworks are easy to write.

The other reason is that web developers are all day long on the web – spamming the web with discussions about what “the” best framework is.

To a certain extend you cannot just close the door and escape from this sphere because you have to constantly educate yourself and keep track of trends.

The downside is that you get constantly hypes to no end by childish web developers who are dancing around their Macs with their Starbucks coffees in their hands.

The web was never constantly hyped that much than in the last years. In the 60s to 70s the big topic was the software crisis. In the 80s object oriented programming was the next big topic which dominated the press. Today we have the web – an endless and constant junk heap of information. Which is dominated by web developers and discussions about JavaScript frameworks and tools. They dominate the complete web due to their overrepresentation – searching always for silver bullets.

I think this is part of a materialistic attitude which only recognizes improvements by expansion. But that’s another story.

Coming back to the topic. The important thing is that you have to trust your own judgement to distinguish between short lived hypes and persistent trends.

But the amount of stuff that get’s into your view makes it more and more difficult to reliably make predictions about the durability of frameworks or any other software or technology.

I just recently experienced it myself. I was writing a project where I programmed the client side code purely in plain JavaScript. After it was getting messy I created in some kind of way my own little framework. After that I wasn’t really happy with that – although it was working pretty fine.

However I tried to rewrite it entirely in Ember.js which was a big mistake. Because the project it relatively new, the api wasn’t really stable and the documentation was for my standards way too shallow and didn’t go really in depth in terms of practicality showing reasonably complex real world examples. Additionally the framework was just too big and somehow intransparent. It pretty much dismissed itself naturally with these factors.

Due to this experience I jumped over to Backbone.js and rewrote the code again. At some point when I was almost done I got pretty angry – while I was using the framework – because the abstractions were just too weak and shallow that it was pretty much pointless to use this framework. It neither had any elegance nor the elaborateness of any good framework. So I wasted another full two days to learn this framework.

At this point I was about to return to my original JavaScript code because it was the most straightforward. Anybody would be able to understand it because it was pretty much what you would expect without the superficial surface that Backbone.js provides distracting you from your actual work.

I used these frameworks because my judgement let me alone. I took the one which were the most hyped frameworks without actually making a proper analysis of the situation. At the other hand I could argue that I only lost probably a week – before I dismissed these framework – whereas others spend month before seeing their mistakes – if the see what they’ve done wrong at all.

After this sobering experience I took a look at a very less hyped – but at this point more mature – framework. I won’t tell you which one because it’s not important. The important thing is that this framework had either a very light abstraction but it had the right abstraction. It just hit it on the spot.

I don’t say that the time I spent on those frameworks was wasted. I think it only will be wasted in the future – if I’m going to make the same mistakes again.

Be always careful with hypes. Especially within the short lived web developer community. Things in this area are exciting because they are very dynamic and evolving fast but it requires a huge amount of experience to judge what is important and what’s not.


This entry was posted in Experience, Programming, Thoughts and tagged , . Post a comment or leave a trackback: Trackback URL.
  • Clint Nash

    There are NO “Framework Wars” in JavaScript. This is a rouse…