There has been a somewhat heated debate about Scala vs. Erlang on the blogosphere recently. The future will be multi-cored, and the question is how the multi-core crises will be solved. Scala and Erlang are two languages that aspire to be the solution, but they are a bit different. What are the pros and cons with their approaches?
At RailsConf 2008, Ezra Zygmuntowicz announced Vertebra, a next generation cloud computing platform that builds on Erlang, Ruby and XMPP. We talked to Ezra to learn about Vertebra, which will soon be open sourced.
We get more and more cores in our CPUs, but does our software run linearly faster? In most cases - no. We've hit a trend change when it comes to faster CPUs. We'll get more and more cores, but each core will be slower as the number of cores increase. In his talk, Joe Armstrong introduces Erlang and the ideas of Concurrent Oriented Programming which is one way to solve the problem.
An under the covers look at the Facebook Chat architecture. "The secret for going from zero to seventy million users overnight is to avoid doing it all in one fell swoop."
In this article, Steve Vinoski explains how to build RESTful Web services using the Erlang programming language and the Yaws web server. While Steve considers most Web frameworks failures simply because they were a poor match to the problem, he believes Yaws and Erlang are a better match for RESTful development than many other language frameworks that were built specifically for that purpose.
In a new interview, recorded at QCon San Francisco 2007, CORBA Guru Steve Vinoski talks to Stefan Tilkov about his appreciation for REST, occasions when he would still use CORBA and the role of description languages for distributed systems. Other topics covered include the benefits of knowing many programming languages, and the usefulness of of Erlang to build distributed systems.
InfoQ interviewed Vlad Dumitrescu about the Erlang IDE, Erlide.
A recent debate on the RubyTalk list asked where to use is_a? vs respond_to? This highlights situations where objects respond to the same interface, but don't share any superclasses. We look at this debate and solutions in other languages such as Smalltalk, Erlang, and Scala.
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.