Здравствуйте, eao197, Вы писали:
E>а вот попробуйте на Erlang-е Emacs или Vim написать -- откуда там взятся мелким процессам?
Мелкие процессы нужны, что можно было параллелить. Если параллелить не надо, то и делить на подпроцессы не надо.
Если в Emacs или Vi есть что синхронизировать, значит там есть параллельные процессы. Если там есть параллельные процессы, то сериализацию доступа к общим данным можно сменить на посылку сообщения процессу-контроллеру над этими данными. Синхронизация остается, только её уже как минимум не надо делать вручную над каждым общим ресурсом, создавая возможность ошибки в каждом таком месте.
Я не могу придумать случая, когда многопоточность с ручной синхронизацией нельзя было бы заменить на обмен сообщениями.