Well it is your choose, you may also look at AngularJs and EmberJs that are decent options for CanJs. I think that currently AngularJS is more comparable with CanJs in terms of common approaches to many things.
Actually CanJs gives you everything you need to build dynamic HTML5-applications of any kind. Everything you REALLY need and it is constantly improving. Actually as other libraries (and frameworks, such as Angular) are. I don't want to be biased, you should compare and make your choice.
Angular is being developed and maturing very fast. CanJs is quite mature, it is more structured, simpler and lighter. But it doesn't have such comprehensive examples and guides (angular has many, even perhaps too many... ), and thus CanJS probably requires from you more intellectually intensive homework to figure out how things should be done.
Many things and techniques are hardwired/predefined in angular (for example like view filters, animations) but though you don't have it out of the box with CanJS, you can control the way how things are implemented and thus improve performance in many cases.