لغة البرمجة إيرلانغ Erlang Programming Language

1 دقيقة

ما هي لغة البرمجة إيرلانغ؟

هي لغة برمجة وظيفية مفتوحة المصدر، موجَّهة للأغراض العامة، تهدف إلى بناء أنظمة قابلة للتطوير ومتزامنة بشكلٍ جيد، إضافة إلى قابلية التوسعة.

تاريخ لغة البرمجة إيرلانغ

طوّر روبرت فيردينغ وجو أرمسترونغ ومايك ويليامز لغة البرمجة إيرلانغ عام 1986 في شركة أريكسون بهدف بناء أنظمة اتصالات لاسلكية متاحة طوال الوقت ومتزامنة بشكلٍ جيد. وفي عام 1998، أصبحت لغة برمجة مفتوحة المصدر. تم استيحاء إيرلانغ من لغات برمجة متزامنة مثل لغة برمجة آدا Ada وشيل Chill إضافة للغة البرمجة المنطقية برولوغ.

لماذا تستخدم لغة البرمجة إيرلانغ؟

هناك أسباب مختلفة تجعل إيرلانغ خياراً جيداً لبناء الأنظمة الموزعة:

  • تم تصميم إيرلانغ للتعامل مع الأخطاء برشاقة، إذ أن لديها آلية مدمجة لإدارة الأخطاء تسمى “المشرفين”، بحيث يمكنه اكتشاف الأخطاء وتصحيحها تلقائياً، ما يجعلها مثالية لبناء أنظمة متاحة للاستخدام وموثوقة.
  • صُمِمت إيرلانغ لتكون متزامنة للغاية بحيث يمكنها معالجة عدد كبير من الطلبات والعمليات الحسابية في وقت واحد، ما يجعلها مثالية لأنظمة البناء التي تحتاج إلى التوسع للتعامل مع كميات كبيرة من حركة المرور.
  • تم تطوير إيرلانغ للأنظمة منخفضة زمن الاستجابة وعالية الإنتاجية، ما يسمح بالتعامل مع عددٍ كبير من العمليات المتزامنة دون تكبد خسائر كبيرة في الأداء.
  • تحتوي إيرلانغ على آلية مدمجة لتمرير الرسائل، إذ تسمح للعمليات بالتواصل مع بعضها بعضاً بسرعة وكفاءة، ما يجعل من السهل بناء أنظمة موزعة تحتاج إلى تبادل البيانات بين العقد.

أمثلة على استخدامات لغة البرمجة إيرلانغ

تستخدم لغة البرمجة إيرلانغ بكثرة من حولنا، إليك أبرز التطبيقات:

  • تطبيقات الدردشة: تستخدم تطبيقات المراسلة مثل تطبيق وي تشات (WeChat) وإيرلانغ(Erlang) و واتساب (WhatsApp) للتعامل مع كميات كبيرة من المستخدمين مع متطلبات مزامنة عالية.
  • أنظمة طابور الرسائل: يعد RabbitMQ، وسيط رسائل مفتوح المصدر تم تطويره بواسطة إيرلانغ بحيث يسمح بتنفيذ بروتوكول طابور الرسائل المتقدم وبروتوكولات أخرى.
  • البلوك تشين: تستخدم منصة ايترنتي (Aeternity) للبلوك تشين إيرلانغ للتطبيقات اللامركزية للتواصل بين العقد وتحقيق ميزة الأمان وقابلية التطوير.
  • المعالجة الثنائية: تدعم إيرلانغ التنفيذ السريع للبروتوكولات الثنائية لأغراض الاتصالات.