Why is concurrent programming so hard ?
vicaya: General concurrent programming is hard because of the shared mutable states and their interdependencies, which are ripe grounds for deadlocks and race conditions. However, there are many successful attempts to solve large chunks of problems by avoiding shared states in user/application code: e.g., actor models (popularized by Erlang) and map-reduce frameworks, which can be used to solve a large class of parallel programming problems.