4 ms·
There are about a million JS libraries that do data binding, from just about every angle, going back a decade or more. I suspect that most JS devs have even wri
by necubi 12y ago
There are about a million JS libraries that do data binding, from just about every angle, going back a decade or more. I suspect that most JS devs have even written their own version (I certainly have).
That's not to say there isn't value in creating new libraries, if they have something new of value to add. I think ReactJS falls into this category, amongst others.
But if you are trying to re-solve a problem that has been solved to absolute death, please put at the top of your web page a rational for why you created this library, and why all the existing efforts fall short. Otherwise I, and I suspect many other developers, will never take the time to find out.
- seanmcdirmid 12y agoDatabinding can be seen as poor-man constraints: better than nothing, but still not full fledged constraints! One-way databinding is still even more impoverished. Unfortunately from what I can tell, ConstraintJS is just another databinding framework without an expressive general constraint solver. It really is too bad that the constraint systems that were explored in the 80s and 90s have yet to resurface (production has just made it to the 70s).
- jules 12y agoConstraints have two problems though: 1. The semantics of data binding is much better behaved. Constraint solving doesn't have an obvious sweet spot, where you can say that you can solve a certain obvious class of constraints. Which is why you had such a cottage industry of constraint solvers. 2. Data binding is powerful enough for most things you want to express, and for those things that it's not powerful enough for, a generic constraint solver isn't powerful enough for either (e.g. ui layout, you quickly start to want a linear programming solver or something else that's domain specific).
- seanmcdirmid 12y agoA physics engine is the ultimate constraint solver and works well for problems like layout :)