Abstractions for Concurrency
Host: Erik Meijer, Microsoft
Concurrency is a topic that until recently many of us took for granted, but before too long concurrency will be all around us, and we will have to face the challenges that it brings heads on. In the small all new processors will be many-core, and in the large all applications will be distributed and services based.
In order for our applications to take advantage of the changes in hardware architectures and the wide availability of services, they must be written and designed up front with concurrency in mind.
Concurrent programming is intrinsically hard, much harder than sequential programming. Suddenly we need to deal with concepts such synchronization, non-determinism, races, deadlocks, etc. Unfortunately current tools and programming languages do not offer much help in making our life easier.
This track will provide concrete advice on how to write correct and efficient distributed and concurrent applications today, and also gives a peek into future technologies such as transactional memory, data parallelism, and orchestration to make concurrency more tractable for the working programmer tomorrow.