Erlang — shved telekommunikatsiya kompaniyasi Ericsson’da Jo Armstrong, Robert Virding va Mayk Uilyams tomonidan 1986-yilda ishlab chiqilgan, bir vaqtda bajarilish va uzluksiz ishlashga mo’ljallangan funksional dasturlash tili. Til nomi daniyalik matematik Agner Krarup Erlang sharafiga qo’yilgan, u navbat nazariyasi (queueing theory) asoschilaridan biri hisoblanadi — bu soha aynan telefoniya tarmoqlarini loyihalashda muhim rol o’ynagan.
Ericsson va telekommunikatsiya ehtiyoji
Ericsson telefon kommutatorlari uchun tizim yaratayotganda, mavjud tillar talab qilinadigan darajadagi uzluksiz ishlash (bir yilda bir necha soniyadan ortiq to’xtab qolmaslik) va minglab qo’ng’iroqlarni bir vaqtda qayta ishlashni ta’minlay olmasligini aniqlashgan. Erlang aynan shu ikkita talab — yuqori mavjudlik va massiv concurrency — atrofida loyihalashtirilgan.
BEAM virtual mashinasi
Erlang dasturlari BEAM deb ataladigan virtual mashinada ishlaydi, u minglab yengil protsesslarni boshqarish, ularni operatsion tizim iplaridan mustaqil rejalashtirish va protsesslardan biri qulasa ham, boshqalarini ishlashda davom ettirish imkonini beradi. Bir Erlang tizimida bir vaqtning o’zida millionlab protsess mavjud bo’lishi odatiy holat hisoblanadi.
“Qulasin” falsafasi
Erlang’ning eng mashhur dizayn tamoyili — “let it crash” (qulasin), ya’ni har bir mumkin bo’lgan xatolikni oldindan qo’lda tekshirish o’rniga, protsessga xato holatida shunchaki qulashiga ruxsat berish, so’ngra uni nazoratchi (supervisor) daraxti orqali avtomatik qayta tiklash. Bu yondashuv kodni soddalashtiradi va tizimning umumiy barqarorligini oshiradi.
Yuqori mavjudlik
Ericsson’ning AXD301 kommutatori Erlang’da yozilgan bo’lib, u mashhur “to’qqizta to’qqiz” (99.9999999%) mavjudlik ko’rsatkichiga erishgani haqida hikoyalar mavjud — bu yiliga atigi bir necha millisekund uzilishga teng. Garchi bu raqam ko’pincha marketing kontekstida keltirilsa-da, u Erlang’ning ishonchlilik borasidagi obro’sini shakllantirgan.
WhatsApp va boshqa qo’llanilishlar
WhatsApp o’zining dastlabki serverlarini Erlang asosida qurgan, bu esa kompaniyaga juda kam sonli muhandis bilan yuz millionlab foydalanuvchini xizmat ko’rsatish imkonini bergan. Erlang shuningdek RabbitMQ xabar brokerining asosini tashkil etadi va Elixir tili aynan Erlang’ning BEAM platformasidan foydalanadi.
Bog’liq tushunchalar
BEAM, Elixir, Telekommunikatsiya, Fault tolerance, Actor modeli, Concurrency, RabbitMQ