Guy Steele, Douglas Crockford, Josh Bloch, Alex Payne, Bruce Tate, and Ted Neward (moderator) hold a discussion on the future of programming. Topics included: the future beyond functional, running JVM/CLR on many cores, what is the future of type checking and type systems, languages for education, comparing DSLs and ubiquitous languages, proving code correctness, functional and parallelism.
Ulf Wiger shows how concurrency can lead to accidental complexity if it is badly implemented in code, becoming a project’s point of failure. Wiger also advises on how concurrency should be addressed in order to avoid complexity.
Simon Marlow explains through code samples what Haskell has to offer for concurrent programming through concurrent data structures and thread-based concurrency, and Haskell’s tools for parallel programming.
Ralph Johnson presents a pattern language that he and his colleagues are working on in an attempt to solve the hard issues of parallel programming through a set of design patterns: Structural Patterns, Computational Patterns, Parallel Algorithm Strategy Patterns, Implementation Strategy Patterns, and Concurrent Execution Patterns.
In his keynote at JVM Languages Summit 2009, Rich Hickey advocated for the reexamination of basic principles like state, identity, value, time, types, genericity, complexity, as they are used by OOP today, to be able to create the new constructs and languages to deal with the massive parallelism and concurrency of the future.
Ulf Wiger shows typical Erlang programs, patterns that scale well on multicore and patterns that don't, profiling and debugging parallel applications and ensuring correct behaviour with QuickCheck.
Multiprocessor systems have gone from being rare and expensive to being ubiquitous. As the hardware reality changes, so do the programs we want to write and so must the platform and libraries we rely on. In Java SE 7, the java.util.concurent package will grow to address the need to exploit finer-grained concurrency, in the form of the fork-join framework.
In this presentation recorded during QCon London 2008, Simon Peyton-Jones advertises the need for programming purity achieved especially through use of functional languages and the increased attention given to functional programming.