My discussion revolves around the following subject matters:
A deeply object-oriented architecture may be shooting yourself in the foot;
Not using a library/framework should be the way to go, if you can;
You should be as lean as possible (i.e., the less objects you create, the better; the less the size of DOM, the better… and you might need special techniques like DOM sharding)
The bottom line is, being minimalistic is your friend:
If you need a banana, don't pass a gorilla that holds the banana and the entire jungle with it.
You can create applications that perform quite like their native counterparts, if you pay some extra attention to details.