James Spooner explains how Data Flow Parallelism works and how it helps to design efficient parallel algorithms. Also: OOP vs. Parallelism.
In a wide-ranging interview, LMAX's Trisha Gee talks to Charles Humble about using Java for low latency programming, and the Disruptor, an open source concurrent programming framework developed by LMAX. She also discusses the agile management techniques used at LMAX, and issues around gender and ethnic diversity in IT.
Philip Wadler talks about the role of functional programming and some of the reasons for its slow rise in the past and its influence today. Also: lambda calculus, monads, continuations and much more.
Rich Hickey explains the ideas behind the Datomic database: why Datalog is used as the query language, the functional programming concepts at its core, the role of time in the DB and much more.
John Nolan shows the state of hardware acceleration with GPUs and FPGAs, why it's hard to write efficient code for them, and why to favor polymorphism over if statements for performance.
Mike Williams, co-creator of Erlang discusses the history of and influences on Erlang as well as languages and paradigms used at Ericsson for large scale development and embedded programming.
Francesco Cesarini and Simon Thompson discuss how Erlang's design allows fault tolerance and resilience, modular error handling, details of the actor model implementation and distributed programming.
Based on his experience of writing BitTorrent clients - Combinatorrent and Etorrent – in Haskell and Erlang respectively, Jesper Louis Andersen presents the advantages of using these languages as well as the challenges that he encountered. He details how did he exploit the elegance of each of these two languages to leverage robust concurrency based on message-passing.
Nick Kallen from Twitter is interviewed by Randy Shoup about Twitter’s use of the Scala programming language. Nick discusses using Scala to build high-performance and scalable network services (including FlockDB), the powerful dualism of Scala which combines the best of object-oriented and functional approaches and also provides his views on the tradeoffs between static and dynamic languages.
Rob Pike discusses Google Go: OOP programming without classes, Go interfaces, Concurrency with Goroutines and Channels, and the Go features that help keep GC pauses short.
Rob Pike discusses concurrency in programming languages: CSP, channels, the role of coroutines, Plan 9, MapReduce and Sawzall, processes vs threads in Unix, and more programming language history.
Cliff Click discusses the Pauseless GC algorithm and how Azul's Zing implements it on plain x86 CPUs. Also: what keeps dynamic languages slow on the JVM, invokedynamic, concurrency and much more.