Асинхронность... ее там нет. Там есть event loop что позволяет писать крайне эффективные программы в плане работы с I/O (что для web очень неплохо) и не париться о таких вещях как потокобезопасность, блокировки и т.д. А если еще и несколько инстансов приложения запусть - по одному на ядро скажем, то утилизация вычислительных мощностей выйдет неплохой. Но распаралелить что-то в рамках одного процесса воркера мы уже не можем. Мы не можем посчитать что-то, проанализировать, заняться обработкой жирной картинки прямо при обработке запроса потому что наш процесс воркер так же обрабатываете еще пару десятков запросов, и пока мы будем удовлетворять нужды одного простаивать будут все. Нода хороша когда у нас все состоит из элементарных операций которые не занимают много времени, все жирное надо выносить из основного процесса и разруливать очередями и т.д. Эта проблема имеет массу решений на самом деле, но все уже усложняется и нода теряет свою красоту. Лучше взять Java/c#/Python для этого (и не надо тут вспоминать про шутки с многопоточностью в CPython).
callback-hell. Собственно наличие event loop диктует так же правила о том, как должна писаться программа. Кучи колбэков, невозможность дебажить нормально и получить четкий стэктрейс из ошибки. Да, есть промисы которые решают первую проблему, да есть либы вроде zone.js которые решают вторую и частично первую проблему... но все это не тривиальное дело.
Собственно... разработка больших и сложных проектов на ноде возможна... но требует от разработчика хорошие знания и понимание того, как работает его платформа. А это увеличивает стоимость разработки в то время как можно взять более эффективные в этом плане инструменты.
У меня была такая же проблема. Причина оказалась в Intel Graphics and Media Control Panel, там на переворот изображения хоткей стоял. Отключил так: Graphics options - Hot Keys - Disable.
1. нет. сейчас рулит html5 - css и svg анимация.
2. сайты на flash уже не делают, т.к. они не работают на мобильных девайсах.
3. остаются только баннеры в рекламных кампаниях и игры, которые тоже переходят на html5
4. изучение основ анимации - не очень много времени. а вот язык actionscript - это отдельная огромная тема. достаточно сложный язык. легче изучить javascript и анимировать на jquery. на нем, кстати, уже и игры тоже делают.
Вконтакту скорее всего реально. Надо посмотреть, с каким user agent он ходит по сайтам и тупо запрещать его (это первое, что приходит в голову). Для общего случая нет. Ну либо это будет сделано с большим ущербом для юзабилити.
Upd. Вариант для общего случая: определияем ip, потом whois ну или nslookup его и решать - пользователь это или парсер
Попробую описать словами.
В Вашем случае, на момент вызова a[3](), переменная i имеет последнее значение из цикла.
Соответственно, я применил IIFE, чтобы сохранить значение i, создав новый контекст.
'use strict';
var a = [1,2,3,77,5,6];
var b = [];
for (var i in a) {
b.push(a[i]);
a[i] = (function(i) {
return function() {
return b[i];
};
})(i);
}
console.log(a[3]());