Access Keys:
Skip to content (Access Key - 0)

Future-proofing collections: from mutable to persistent to parallel

Abstract

Multicore processors are on every desk now. How are we going to make use of the extra power they provide? Some think that actors or transactional memory will save the day by making concurrent programming easier and safer. Even though these are welcome, I am skeptical about their ultimate success. Concurrency is fundamentally hard and no dressing up will be able to hide that fact completely.

A safer and for the programmer much simpler alternative is to treat parallel execution as essentially an optimization. A promising application area are collections. Programing by transforming and aggregating collections is simple, powerful, and can optimized by executing bulk operations in parallel. To be able to do this in practice, any side effects of parallel operations need to be carefully controlled. This means that immutable, persistent collections are more suitable than mutable ones.

In this talk I will describe the new Scala collections framework, and show how it allows a seamless migration from traditional mutable collections to persistent collections, and from there to parallel collections. I show how the same vocabulary of methods can be used for either type of collection, and how one can have parallel as well as sequential views on the same underlying collection.


View talk on Parleys.com

Speaker

retweet

Do you like this talk?


Related Presentations

Future-proofing collections from mutable to persistent to parallel
Programming in pain
Scala
Hands-On Scala
The Next Big JVM Language
What's New in Scala 2.8
Akka Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Actors

Search by Tag

Below are the 190 labels used in Devoxx 2010 listed alphabetically. Click on a label to see its associated content.
activiti, actors, adobe, agile, air, ajax, akka, alm, amazon, analysis, android, animations, annotations, apache, ast, asynchronous, atomsphere, authentication, authorization, authz, azure bayeux, birt, blackberry, bof, bpm caching, camel, cassandra, cdi, ci, clojure, closures, cloud, clusters, collaboration, collections, comet, conference
design, devops, dsl, duchess, dvcs, ec2, eclipse, ehcache, ejb3, ejb31 faces, fantom, findbugs, flash, flex, flex4, foss gae, gaelyk, gis, git, glassfish, google, grails, groovy, gui, guice, gwt
hadoop, hazelcast, hbase, hdfs, hibernate, hive, html, html5, http, hudson, infinispan, ioc, iphone, itext, izpack j2ee, java7, java8, javaee, javaee6, javafx, javaposse, javascript, javase, javase7, javase8, jax-rs, jax-ws, jdk, jdk7, jdk8, jms, jmx, jpa, jpa2, jquery, jsf, jsf2, jsonp, jsr299, jsr330, jug, jvm labs, lambda, loadui, lombok, mahout, mapreduce, maven, methodology, microsoft, mobile, modules, mongodb, morlocks, multicore, mylyn
news, nexus, no-sidebar, nosql, oauth, oltp, openam, openid, openjdk, openoffice, osgi parleys, patterns, pdf, performance, prototype, puzzlers, quickie, rails, repl, reporting, rest, ria, roo scala, scalable, seam, search, servlet, servlet3, soa, soloist, speakers, spock, spring, springmvc, sql, stm, struts, svn, symbian
tapestry, tdd, testing, tools, tools_in_action, twitter, uma, uml, university, url, visualvm, voldemort w3c, web20, webos, websockets, websphere, weld, wicket, ws-addressing, wtp, xfa, xhr, xml
Adaptavist Theme Builder Powered by Atlassian Confluence