Parallel programming / parallelism , which is (semi-) automated, against fiddling with threads, callbacks, and synchronization. Possibility of parallelization for loops, such as:
Parallel.ForEach(fooList, item => { item.PerformLongTask(); }
only consists of winning.
However, some languages already support this functionality. Notably, F # has asynchronous workflows. Starting to release .NET 4.0, the Parallel Extensions library will make concurrency much easier in C # and VB.NET. I believe that Python also has some concurrency library, although I personally have not used it.
What would be nice is that parallelism is fully automated in purely functional languages, that is, you do not need to change your code even slightly and automatically let it work almost optimally on several cores. Please note that this can only be done with purely functional languages (such as Haskell, but not CAML / F #). However, constructs such as the example above would be very convenient for automating parallelism in object-oriented and other languages.
I would suggest that in the near future libraries, design patterns, and even entire programming languages that focus on simple and high-level support for parallelism will increasingly be distributed, as desktop computers begin to move from 2 cores to 4 and then 8 cores and the advantage of automated concurrency It becomes much more obvious.
Noldorin
source share