Які переваги у angularjs vs knockoutjs

Об'єкти observable ускладнюють розробку, на маленьких додатках воно не відчувається, але в більших - воно буде дратувати і гальмувати розробку.

У мене є досвід того і іншого, дак ось швидкість розробки і Новомосковскемость у Angular Light вище (имхо). А взагалі це в першу чергу залежить від того що краще знає розробник.
Для порівняння спробуйте на ko зробити такий Біндінг-елемент6 jsfiddle.net/lega911/v2uf2

> З AngularJS я плакав до кінця дня :)
Спробуйте Angular Light, там немає таких "бар'єрів" як модулі, сервіси, провайдери, константи. Директиви робляться просто - майже так само як Біндінг в ko, і там той же applyBindings;)

@lega
> Для порівняння спробуйте на ko зробити такий Біндінг-елемент6 jsfiddle.net/lega911/v2uf2
Саме сокирне рішення ось у мене таке вийшло: jsfiddle.net/KTW34
Якщо потрібно повертати значення і використовувати окремо де завгодно, можна загорнути це в custom bindings, не став робити, тому що це просто справа техніки.

за Angular Light, спасибі спробую.

На рахунок ваших 5ти пунктів.
Перший пункт я взагалі не зрозумів, що ви мали на увазі.
Третє і четверте, дуже сумнівно. Оскільки ko.observable не дурна і оптимізація, швидше за все буде потрібна в іншому місці.

Другий пункт і п'ятий, по суті себе дублюють і на мій погляд є найбільш значущим мінусом KnockoutJS.

Додам ще: за швидкістю КО швидше, і правда, тому що він менше, і працює набагато прозоріше ніж Angularjs. "Не годиться для великих додатків" - це моя особиста думка, але дивлячись на 2gis.ru можна зробити висновок що все-таки годиться. Але я б не став робити великі додатки на КО :-) Якщо вибирати серед MVVM фреймворків - то я вибираю Angular.

Поки що в мережі я зустрічав лише думки, що AngularJS підходить для великих додатків, лише тому що тому. Без аргументів. Хоча час показує, що коли якийсь framework виправдовують подібним чином лише тому що він монструозної і не більше.

Що є філософія KA яка не годиться для великих SPA додатків?

@SowingSadness KO працює за принципом: eval ( 'alert (123)'). Все що ви пишете в data-bind = ". Your code here." Потім вставляється в eval. Це і є те зло, яке не рекомендується використовувати у великих додатках.