سخت افزارهای جدید به طور فزاینده ای همروند (parallel)
شده اند، بنابراین زبانهای برنامه نویسی باید از همزمانی پشتیبانی کنند یا محکوم
به مرگ هستند. نقل قولی از استیو جابز: راهی که شرکتهای ساخت پردازشگر در پیش
گرفته اند این هست که هستههای بیشتر و بیشتر اضافه کنند، اما کسی نمیداند که
چگونه برای آنها برنامه بنویسید. منظورم دو، بله؛ چهار، نه واقعا؛ هشت؛ کلا
فراموشش کنید.
خب استیو اشتباه میکرده است؛ الان ما میدانیم که چگونه
برای پردازشگرهای چند هسته ای برنامه بنویسیم. ما برنامه هایمان را با Erlang مینویسیم و
هرچقدر که بر تعداد هستهها افزوده شود برنامهی ما نیز سریعتر از قبل کار میکند.
Erlang
از همان ابتدا برای برنامه نویسی سیستمهای همزمان، توزیع پذیر، تحمل پذیر بودن
خطا (fault-tolerant)، مقیاس پذیر (scalable)، نرم و بلادرنگ طراحی شده بود. سیستمهای نرم بلادرنگ به مانند
سیستمهای ارتباطات تلفنی، سیستمهای بانکی و ... که در آنها تعدا دفعات پاسخ
گویی سریع بسیار با اهمیت است. سیستمهای مبتنی بر Erlang در مقیاس عظیمی
مستقر شده اند و بخشهای قابل توجهی از شبکه ارتباطات تلفن همراه دنیا را کنترل میکنند.
اگر مشکل شما همزمانی هست، اگر در حال ساخت سیستم چند
کاربره هستید و یا اگر در حال ساخت سیستمی هستید که با زمان سرو کار دارد، استفاده
از Erlang میتواند بخش زیادی از کارهای شما را کم
کند، چرا که Erlang فقط برای
ساخت چنین سیستمهای طراحی شده است.