Этот вопрос уже был задан пару сотен раз и пару сотен раз все советовали то, чем пользуются сами.
"Серебряной пули" нет. У любого из них есть свои плюсы и минусы. У любого разработчика есть свои требования. Кому-то хочется иметь максимально большое количество фич "из коробки", кому то важен минимализм и прозрачность.
Никто и никогда не сможет вам сказать, что вам подойдет какой-то конкретный фреймворк.
Более того, проекты развиваются, появляются новые задачи. Не раз бывало так, что при первоначальном выборе одного из фреймворков все шло гладко. Но в определенный момент приходили новые требования, которые было проще бы реализовать на другом фреймворке. Но разве это повод все переписывать? Конечно, нет.
Если вам нравится canjs и он решает ваши задачи, то пишите на canjs и не слушайте никого.
П.С.: Вам полезно будет прочитать вот этот вопрос
Какой Javascript framework выбрать для новичка?