@JRazor полноценное — не критерий. Вот feedly — полноценное приложение, скорость работы вменяемая. Но сложным его не назовешь.
Посмотрите демки по моим ссылкам на своем целевом железе — устраивает ли вас скорость? Некоторых устраивает производительность, некоторых нет.
Пишите комментарий на ответ, а не новый ответ на свой же вопрос.
По существу: откройте любой туториал по запросу node.js websocket и посмотрите, как там все прекрасно хранится в памяти, и как объявляются массивы в JS.
@kazhuravlev страдать:)
Есть несколько решений.
1) Некоторые фреймворки могут генерить формы и их элементы сразу с джаваскриптом, который будет валидировать (см. джанговские виджеты в админке).
2) Клиентская валидация отличается от серверной (иногда это имеет смысл), как правило она проще и проверяется только самое необходимое (заполненность полей).
3) Правила валидации пишутся на каком-то DSL, код клиентского валидатора либо генерируется, либо парсит этот DSL (примерно как описал @vitaliycto).
setValue: function(evt){
должно быть.