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.
Dean Wampler discusses the state of Scala: the big changes in 2.8, the Scala on .NET, concurrency and parallelism with Scala and Akka, and experiences with adoption of functional languages.
Paul King discusses the state of Groovy and its maturing ecosystem which includes IDE support, static analysis tools, testing frameworks and the GPars library for concurrency.
Rich Hickey explains the ideas behind Clojure 1.2's new polymorphism constructs deftype and protocols. Also: Clojure 1.3 features such as faster arithmetic and future features like Pods.
Kresten Krab Thorup and Robert Virding discuss the origins of Erlang, the state of the Erlang VM, integrating native code with Erlang etc. Also: the challenges of running Erjang/Erlang on the JVM.
Kresten Krab Thorup talks about the Erjang project and explains the challenges of bringing Erlang to the JVM, using Kilim for lightweight processes, the implementation of tail recursion and much more.
This interview begins with a discussion of functional programming, the use of Scala by programmers trained in Java and the differences between purely functional languages like Haskell and hybrids like Scala. Later in the interview other programming languages are discussed along with the notion of programming paradigms and the need for combining both paradigms and languages to best solve problems.
Doug Lea talks to InfoQ about the evolution of the Fork/Join Framework, the new features planned for java.util.concurrent in Java 7, and the "Extra 166" package. The interview goes on to explore some of the hardware and language changes that are impacting concurrent programming, and the effect the increasing prevalence of alternative languages in the JVM are having on library design.