Switching to Erlang, Part 2
In the last post, I talked about the history of Erlang; now let’s talk about how the industry is trending.
Computer performance has been achieved primarily by raising the clock speed of the processor. Clock speed tended to double every 18 months until the early turn of the century when it plateaued in the 3-4 GHZ range. Heat is the constraint.
Since then, processor manufactures have added performance by adding concurrency via multiple cores. Today the number of cores in a server is about 16. Soon there will be 32 cores, follow by 64 and then over a hundred. Software that does not leverage concurrency will be left at a competitive disadvantage. Many companies will be caught flat footed. We will not be. Instead, other will talk about what we are about to achieve.
Assembler, C and C++ has been the language of choice when writing software that ran on fast processors. The primary advantage was speed. However, assembler, C and C++ as with other procedural or object oriented languages, made it difficult to easily achieve high fault tolerance and, distributed computing and scalability via concurrency. Today, Erlang is the language of choice to achieve highly fault tolerant, distributed and concurrent applications running on multicore processors, CPUs and servers across locations.
Because of multiple-core processors, functional languages in general are on the upswing. A number of them run on the Java Virtual Machine or use the underlying thread infrastructure of the operating system. Erlang does not. Erlang runs on its own virtual machine that supports concurrency via light weight threads. Erlang runs virtually the same regardless of the underlying operating system. Erlang can create over a million concurrent processes in under a second. No other functional language comes close. Because Erlang uses light weight threads, it scales nearly linearly.
In addition to Erlang supporting concurrency, fault tolerance and distributed processing, it enables higher productivity. Erlang helps the product engineer to build applications at a higher level, with the advanced capabilities mentioned without dealing with the low-level mechanics as is typical with C++. We will be able to accomplish more with less effort in Erlang.
At VHT, we have built an organization that has very strong talent, using the best practices in the industry, and we are about to significantly modernize our tools. We have all that we need to establish second-to-none leadership in our industry. I am confident that with the organization we have in place, we can make a huge difference for VHT, our customers and ourselves.
In the final post of this series, I’ll discuss how VHT is moving forward with the Erlang transition.