When we solve a large problem we use “divide and conquer” — large problems are broken down into smaller problems, we solve the smaller problems and hopefully by solving the smaller problems when we put everything together the larger problem is solved.
We can break down the larger problem by identifying parallel processes, objects, functions or relations.
Concurrency Oriented Programming breaks down problems into sets of communicating processes. OO programming breaks down problems into objects, Functional programming into functions and relational programming into relations. Each of these methods is different and each has strengths and weaknesses.
In this talk I’ll survey the programming landscape and illustrate which class of problems can be best solved with distributed concurrent programs.