Designing for flexibility and robustness: Asynchronous message model, OOP and Functional Programming
According to Pragmatic Programmers it is preferable in OOP to avoid design based on returning values. Michael Feathers argues that it may also be better to use the asynchronous message model that might be instrumental for improving adaptability and robustness. This maps well to the Erlang model though opposing some of the principles of pure functional programming.
Not every application has the scalability requirements of Google, Flickr or Amazon, however the ideas behind the Mnesia DBMS are compelling: a fast, in-process DBMS that takes advantage of concurrency, with the ability to replicate tables across distributed nodes for high scalability and fault tolerance.
Ruby's thread system is about to undergo big changes in Ruby 1.9, possibly moving from user space threads to kernel threads. Or not. A recent interview with Matz and Sasada Koichi shows some new ideas that are considered. We take a look at the different possible future Ruby threading systems.
Now that Ruby holds no secrets from him, Antonio Cangiano explains why and how Haskell will satisfy his passion for language learning.