2

I've been asked to design a web application which has multiple tiers. It will have a client aspect (rendering information for the user), a server aspect (web api serving data) and a database behind it all.

I'm comfortable choosing the technology stack for the web api and database. It will either be a choice of Microsoft Web Api with SQL backend OR nodeJS with MySQL.

For me the challenge (and the prompt for this post), is choosing the correct frameworks for the client side.

I've used AngularJS quite a few times and its fairly straightforward for me to go down this road again but the project in question will have a lifespan of 5 years and I'm worried that choosing Angular 1.x, having been out since 2009 and due to be replaced by Angular 2.0, which is completely different, is a bad investment.

I will most likely use bootstrap for the base css side.

So out of the plethora of frameworks out there - what would be the strongest for client side data driven web applications?

Some obvious choices being:

  • Ember
  • Backbone
  • React
  • Knockout
  • Meteor
  • Polymer
  • Ractive
  • Durandal
  • Angular 2.0?

To name but a few! Which is best and why? I'm not looking to avail of server side capabilities of the likes of React. Just data (read/write) from the client side.

Rob
  • 6,819
  • 17
  • 71
  • 131

1 Answers1

2

From your list, I tried quite a few: angular (1), backbone, ractive. I had a look at a few others but didn't investigated them further.

From my experience, Ractive was the winner. I still stick to it and am happy with it.

My first experience was with backbone. It looked pretty simple and what I needed. However, when starting to do non-trivial stuff, I ended up pretty quickly in a dead end. My view and data sometimes went out-of-sync and I didn't know how I could perform some other stuff.

My second experience was Angular. With all the hype, I thought it must be great. But getting into it was hard. It's just ...complex. As soon as I wanted to build a non-trivial directive, I was like "wtf? wtf!". The second show-stopper was the debugging ability. At some point, everything broke and my debug console just threw a strange stack trace, giving me absolutely no clue what might be the problem. ...a long time after I discovered by chance that I had placed a @ instead of a # or something like this. Also, one thing I disliked from the start is that it forces you to do everything angular-ly, which doesn't always play well with other libs.

My last experience is Ractive and I write production code with it since a year or so. I'm very happy with it. Sure, it's no silver bullet and has some quirks. But overall, it's a lib where you can quickly get started with, which can do a lot, and that doesn't get in your way. The mainainers are also supprisingly responsive.

...but if you're experienced with angular, perhaps it's better to continue that way.

That's my 2 cents.

dagnelies
  • 5,203
  • 5
  • 38
  • 56