Multicore processors are on every desk now. How are we going to make use of the extra power they provide? A promising solution is parallel programming using collections. Programing by transforming and aggregating collections is simple and powerful, and can be parallelized well. In this talk I will describe the design principles behind the Scala collections framework which implements these ideas.
This talk will introduce the new programming language ParaSail which is focused on two themes: programming should be by default parallel, with programmers working harder to make things sequential if necessary, and second, all checks should be performed at compile-time, including checks for race-conditions, uninitialized variables, out-of-bounds array indices, null pointers, numeric overflow, etc.