InfoQ

InfoQ

Presentation

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Recorded at:
Recorded at

How to Think about Parallel Programming: Not!

Presented by Guy Steele on Jan 14, 2011 Length 01:09:36     Download: MP3
     Slides
Sections
Architecture & Design,
Development
Topics
Strange Loop 2010 ,
Strange Loop ,
Parallel Programming ,
Architecture ,
Programming ,
Language Design ,
Conferences
 

How would you like to view the presentation?

In case you are having issues watching this video, please follow these simple steps to help us investigate the issue:
1. Right click on the video player and select Copy log
2. Paste the copied information in an email to video-issue@infoq.com (clicking this link will fill in the default details in most email clients).
Note: in case your email client hasn't automatically picked up the email subject, please include in your email the URL of the video too.
3. Done.
We will investigate the issue and get back to you as soon as possible. Thanks for helping us improve our site!
Summary
Guy L. Steele Jr. believes that it should not be the programmer’s job to think about parallelism, but languages should provide ways to transparently run tasks in parallel. This requires a new approach in building languages supporting algorithms built on independence and build-and-conquer principles rather than on linear decomposition of problems.

Bio
Guy Steele is a Sun Fellow for Sun Microsystems Laboratories, working on the Programming Language Research project. He received his A.B. in applied mathematics from Harvard College (1975), and his S.M. and Ph.D. in computer science and artificial intelligence from MIT (1977 and 1980). Prior to joining Sun Microsystems, he was an assistant professor of computer science at Carnegie-Mellon University

About the conference
Strange Loop is a developer-run software conference. Innovation, creativity, and the future happen in the magical nexus "between" established areas. Strange Loop eagerly promotes a mix of languages and technologies in this nexus, bringing together the worlds of bleeding edge technology, enterprise systems, and academic research. Of particular interest are new directions in data storage, alternative languages, concurrent and distributed systems, front-end web, semantic web, and mobile apps.
excellent talk by peter lin Posted
Inspiring. Inspiring. by Torsten Grust Posted
  1. Back to top

    excellent talk

    by peter lin

    Thanks for a great talk.

  2. Back to top

    Inspiring. Inspiring.

    by Torsten Grust

    I can view this talk over and over again and find it more inspiring every time.
    Thanks for posting.

    —Torsten


    data WordState = Chunk String
    | Segment String [String] String
    deriving Show

    maybeWord :: String -> [String]
    maybeWord "" = []
    maybeWord s = [s]

    (⊕) :: WordState -> WordState -> WordState
    Chunk s ⊕ Chunk s' = Chunk (s ++ s')
    Chunk s ⊕ Segment l as r = Segment (s ++ l) as r
    Segment l as r ⊕ Chunk s = Segment l as (r ++ s)
    Segment l as r ⊕ Segment l' as' r' = Segment l (as ++ maybeWord (r ++ l') ++ as') r'

    processChar :: Char -> WordState
    processChar ' ' = Segment "" [] ""
    processChar c = Chunk [c]

    words s = case g of
    Chunk s -> maybeWord s
    Segment l as r -> maybeWord l ++ as ++ maybeWord r
    where g = foldr1 (⊕) (map processChar s)

    main = print (Main.words "Here is a sesquipedalian string of words")

Educational Content

Eventually Consistent HTTP with Statebox and Riak

Bob Ippolito explains how to solve concurrent update conflicts with Statebox, an open source library for automatic conflict resolution, running on top of Riak.

Java.next

Erik Onnen attempts to demonstrate that Java is still the best programming language for the JVM if simplified idioms are used along with proper tooling.

Evolution in Data Integration From EII to Big Data

Approaches to integrating data are changing with emergence of cloud computing.

Winning Hearts and Minds: How to Embed UX from Scratch in a Large Organization

Michele Ide-Smith presents the lessons learned in the process of introducing UX principles and techniques into a large organization through a series of small steps.

LMAX Disruptor: 100K TPS at Less than 1ms Latency

Dave Farley and Martin Thompson discuss solutions for doing low-latency high throughput transactions based on the Disruptor concurrency pattern.

Thoughts on Test Automation in Agile

Rajneesh Namta shares his thoughts, experiences, and some of the critical lessons learned while implementing software test automation on a recent Agile project.

Actor Interaction Patterns

Dale Schumacher presents several patterns of actor interaction that can be used in collaborative programs written in any language.

Scalaz: Functional Programming in Scala

Rúnar Bjarnason discusses Scalaz, a Scala library of pure data structures, type classes, highly generalized functions, and concurrency abstractions to perform functional programming in Scala.