"…Knockout does not provide guidance or constructs beyond the model, though. It’s up to the developers to build well structured JavaScript applications beyond the models and model bindings. This often leads developers without good JavaScript experience down a bad path because they don’t realize that they need to consider good application structure when using Knockout. "
—
==================
If a framework fails to reduce bad code, it FAILED.
After many years of js programming, I realize that we are hard to think in prototype-based oop with massive DOM tree around. Well structured JavaScript application is hard to achieve in real world.