A brand new Software Developer’s Journal!
The current issue is centered on Clojure and supporting technologies. In the teaser you can read about:
Software Transaction Memory in Clojure by Stefan Kamphausen
In today’s software industry creation of robust and scalable programs that make efficient use of the current generation of multi-core architectures is one of the main challenges. The predominant technology currently is locking which seems easy at first, but becomes increasingly hard to handle when the program becomes more complex. Dead-locks, live-locks, nested locks, and locks in conjunction with Exceptions lead to frustration with the developers. Software Transactional Memory is one tool to help managing access to shared resources. The idea of transactions is not new: they are a common technology in the realm of databases and in the 1980s have seen some research on transactions on memory.
Dissecting Reducers in Clojure 1.5 by Renzo Borgatti
Reducers are one of the many new features introduced by Clojure 1.5 (still release candidate at the time of this writing). Reducers are just one side of the functionality, the other being the function “fold” and the “foldable” protocol. In this article I’d like to introduce Reducers starting from the problem of designing code that runs in parallel over multiple cores. We’ll work our way backward to show the advantages of using Reducers in that context instead of plain old “map” functions.
The Root of Polymorphism: The Anti-If Campaign by Dominikus Herzberg
Clojure supports multimethods – a form of polymorphism that is often hard to get for programmers trained in traditional object-orientation. If you restrict yourself from the use of if forms, you will end up using maps instead. Multimethods are a natural consequence of this approach.
This and more in the full issue. Download your teaser free today!