On speaking to a thread... and Erlang/OTP

In his biography, Winston Churchill writes about his early encounter with Latin while in school. The young student is puzzled by why mensa (table) also means "O table". His schoolmaster explains that "O table" is the vocative form: "You would use it in speaking to a table", to which the puzzled student blurts out: "But I never do", and is warned for his impertinence.

I feel the same way while programming with threads, my use of the vocative form "O thread" being more of a plea to the thread. Ideally I would like to avoid thread programming, yet write concurrent code for multi-core processors. In this blog post I'd like to give you some idea of how Erlang helps me to do that.

Who uses Erlang, and why?

I talk to a lot of people about Erlang, usually programmers who code in mainstream languages. A surprising number of them have heard about Erlang because of WhatsApp. It definitely helps for a niche programming language to have a famous use case.

There are many other well known examples of systems and software that use Erlang. Here we focus on 3 examples and why they are built using Erlang.

Semiconductor scaling and concurrent clouds - Part II

II. The era of concurrency

In Part I we discussed the technical secrets of semiconductor scaling that has kept Moore's Law going to this day. We learnt about such things as channel length scaling, high-K, leakage current, finFET, and timing closure. In particular we saw that as channel length is aggressively scaled down, the dynamic power dissipation goes up as the CUBE of clock frequency.

We will now apply these semiconductor insights to understand the shift to multi-core commodity processors, and the emergence of concurrent computing on the cloud.