English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Erlang هي لغة برمجة وظيفية أيضًا، وهي تحتوي على بيئة تشغيل. بنيت بطريقة تجعلها تدعم بشكل داخلي وظائف التزامن، التوزيع والتحمل. تم تطوير Erlang في البداية للاستخدام في عدة أنظمة اتصالات كبيرة في إيرلانغ.
تم تطوير الإصدار الأول من Erlang في عام 1986 بواسطة Joe Armstrong وRobert Virding وMike Williams. كان اللغة في البداية لغة مملوكة داخلية لإيرلانغ. تم إطلاقها كلغة مفتوحة المصدر في عام 1998. الآن يتم تقديم الدعم والمaintance لإيرلانغ وOTP (مجموعة من المكتبات والأدوات المدمجة في Erlang) من قبل قسم منتجات OTP في إيرلانغ، ويُطلق عليها على نطاق واسعErlang/OTP。
إذا كان لديك المتطلبات التالية، يجب استخدام Erlang لتطوير التطبيقات-
يجب أن يتمكن التطبيق من التعامل مع أنشطة تزامنية كبيرة.
يجب أن يكون التطبيق قادرًا على توزيع بسهولة عبر الشبكة الحاسوبية.
يجب أن يكون هناك أداة تجعل التطبيق قادرًا على تحمل الأخطاء في البرمجيات والهندسة.
يجب أن يكون التطبيق قابلاً للتوسع. هذا يعني أنه يجب أن يكون قادرًا على التشغيل عبر عدة خوادم دون تغيير كبير.
يجب أن يكون التطبيق سهل التحديث وإعادة التكوين دون الحاجة إلى إيقاف وإعادة تشغيل التطبيق نفسه.
يجب أن يستجيب التطبيق للمستخدم في نطاق زمني صارم.
الموقع الرسمي لإيرلانغ هوhttps://www.erlang.org/。
اللغة البرمجية Erlang هي لغة برمجة متعددة الاستخدامات موجهة نحو الاكتروني، تم تطويرها من قبل مختبر CS-Lab التابع لمصنع معدات الاتصالات السلكية واللاسلكية السويدية إيرلانغ، بغرض إنشاء لغة برمجة وبيئة تشغيل يمكنها التعامل مع أنشطة التزامن الكبيرة. تم إطلاق Erlang في عام 1987، بعد عقد من التطوير، تم إطلاق إصدار المصدر المفتوح في عام 1998. Erlang هي لغة برمجة تُشغل على محاكي الافتراضية وتُفسر، ولكن الآن تشمل أيضًا مبرمجًا محليًا تم تطويره من قبل مشروع HiPE العالي الأداء في جامعة أوبسالا، وبدءًا من إصدار R11B-4، بدأ Erlang أيضًا في دعم الم解释ر الشبكي. في نموذج البرمجة، يُعتبر Erlang لغة برمجة متعددة الأنماط، تغطي النمط الحسابي، النمط الاكتروني والنمط الموزع. Erlang المبرمج بشكل متسلسل هو لغة برمجة حسابية تقييم مسبق، تعيين مرة واحدة وبدون نوع ديناميكي.
Erlang لغة برمجة منظمة، نوع ديناميكي، يدعم الحوسبة المتوازية. تم تصميمها في البداية من قبل إريكسون للاستخدام في تطبيقات الاتصالات، مثل التحكم في المتبادل أو تغيير البروتوكولات، لذا فإنها مناسبة جدًا لبناء أنظمة موزعة، وفعالة في الحوسبة الحقيقية. التطبيقات التي تكتب باستخدام Erlang تُشغل عادةً بمئات الآلاف من العمليات الخفيفة، وتتواصل بينها عن طريق تبادل الرسائل. يعتبر التبديل بين سياقات العمليات في Erlang مجرد جزء بسيط، أكثر كفاءة بكثير من تبديل الخيوط في برمجة C.
يُمكن كتابة التطبيقات الموزعة باستخدام Erlang بسهولة أكبر، لأن ميكانيزم التوزيع يبدو شفافًا للبرنامج: لا يعلم البرنامج نفسه أنه يعمل بشكل موزع. بيئة التشغيل الخاصة بلغة Erlang هي محاكي، تشبه محاكي Java، حيث يمكن تشغيل الكود المترجم في أي مكان. حتى يسمح نظام التشغيل الخاص بلغة Erlang بتحديث الكود دون انقطاع. بالإضافة إلى ذلك، إذا لزم الأمر، يمكن ترجمة الشيفرة إلى شيفرة محلية للتحسين في الأداء.
يُدعى Erlang على اسم العالم الدنماركي matematician و statistician Agner Krarup Erlang، ويُمكن أيضًا أن يُعبر عن Ericsson Language.
اللغة Erlang ليست لغة جديدة، ظهرت في عام 1987، لكن في ذلك الوقت لم تكن الحاجة إلى التوازي والتحكم في التوزيع شائعة كما هي اليوم، وكان يمكن القول إنها لم تجد مكانها. كان مؤسس لغة Erlang Joe Armstrong يعمل على تطوير شبكات الهاتف في إريكسون في ذلك الوقت، وكان يستخدم Smalltalk، لكن في ذلك الوقت كان Smalltalk بطيئًا جدًا، ولم يكن قادرًا على تلبية متطلبات الأداء العالي لشبكات الهاتف. لكن Joe كان يحب Smalltalk حقًا، لذا طلب جهاز Tektronix Smalltalk. لكن استغرق الجهاز شهرين للوصول، وبينما كان Joe ينتظر بلا تفاعل، بدأ يستخدم Prolog، وفور وصول Tektronix، أصبح مهتمًا أكثر بها، ولذلك لم يكن Joe راضيًا عن فهم Prolog، وبعد فترة من التجارب، أضاف Joe معالجة التوازي وإصلاح الأخطاء إلى Prolog، وبالتالي ولدت لغة Erlang. هذا هو السبب في أن بنية Erlang تتشابه مع Prolog في العديد من النواحي، مثل تعبيرات قائمة [Head | Tail].
تم إطلاق إصدار اختباري من Erlang في عام 1987، وتم تحسينه بشكل مستمر في التطبيقات العملية، تم إطلاق الإصدار الأول للمستخدمين في عام 1991، يحتوي على ميزات إضافية مثل معالج وواجهة رسومية. في عام 1992، استقبل Erlang المزيد من المستخدمين، مثل مشروع RACE. في نفس الوقت، تم نقل Erlang إلى منصات متعددة مثل VxWorks وPC وMacintosh، وبدأت مشاريع منتجين تستخدم Erlang. في عام 1993، بدأت مجموعة مستقلة داخل شركة Ericsson في الصيانة والدعم لتحقيق Erlang وتحسينات Erlang الأدوات.
مختلف عن اللغات الموجهة نحو الكائن التقليدية، لديها مزايا خاصة بها: أولاً، إنه يعتمد على التواصل المتوازي للعمليات، وهي عمليات خفيفة وتتعاون مع بعضها البعض بتنظيم في معالجة المعاملات، ولا يجب على المستخدم أن يقلق بشأن العمليات PV المحددة، هذه العمليات تكون واضحة للنظام التشغيل، بالنسبة للنظام التشغيل، يوجد عملية واحدة فقط تعمل. ثانياً، يمتلك كل عملية ذاكرة مستقلة، في التواصل بين العمليات يعتمد بشكل كامل على نقل الرسائل، يمتلك كل عملية صندوق بريد مستقل ويستخدم طريقة التطابق لنقطة البحث عن الرسائل التي يجب معالجتها، ثم يقوم بمعالجتها بشكل منفرد. هذا يقلل من شدة التوصيل بين العمليات، ويزيد من الاستقلالية. يحتوي Erlang أيضًا على ميكانيزمات فشل موثوقة، نظرًا لأن العمليات متكاملة نسبيًا، يمكن استخدام بعض العمليات لربط أو مراقبة العمليات الأخرى في Erlang، وعندما يحدث خطأ في هذه العمليات المراقبة ويتم إنهاؤها بشكل استثنائي، يتم استقبال رسائل انتهاء العمليات من قبل البرنامج المراقب والقيام بمعالجة هذه العمليات بشكل مناسب. في OTP، يمكن استخدام شجرة المراقبة في Erlang لتنفيذ المراقبة أحادية أو متعددة. الأهم من ذلك، دعم معالجة المعالجات المتعددة النواة، لا تحتاج إدارة المطورين لإدارة العمليات المتعددة النواة في Erlang، ويكون هذا كاملاً غير مرئي للمطورين، نحتاج فقط إلى كتابة البرامج كما كان في الماضي. أخيرًا، يدعم Erlang التحديث الساخن للكود، يمكن تحديث الكود في Erlang دون إيقاف التشغيل، مما يتيح التحديث الساخن أثناء تشغيل البرنامج. يمكن الحفاظ على إصدارين مختلفين من نفس المodule في إدارة إصدارات Erlang، مما يدعم التراجع إلى الإصدارات السابقة.
يركز لغة Erlang على احتياجات معينة وليس مناسبة في جميع الحالات، وفي الوقت الذي يحتوي على العديد من الخصائص الجذابة، هناك أيضًا بعض العيوب: قوة التعبير عنه ليست قوية، وErlang لغة غير معينة، يمكن تعديل محتوى الرسائل أو متطلبات النمط بسهولة عند التطابق، ولكن عند حدوث أخطاء، تكون هذه الأخطاء قوية في التغطية. بالإضافة إلى ذلك، عند زيادة حجم المشروع، يمكن ملاحظة أن ميزة اللغة تجعل الأجزاء مختلفة تظهر ميزة مسطحة، مما يؤدي إلى تشوش في بنية البرنامج مع وجود العديد من المجموعات والسجلات. بالإضافة إلى ذلك، يختلف البرمجة الحسابية عن اللغات التقليدية، حيث أن لغات البرمجة الشائعة حاليًا هي من فئة لغة C وأتمتة الأجسام، ويفتقر البرمجة الحسابية إلى نظريات برمجة ناضجة، وعدد قليل من المواهب والموارد ذات الصلة، مما يزيد من صعوبة التعلم. بالإضافة إلى ذلك، تم تعميم فكرة أتمتة الأجسام في العمق، مما يجعل من الصعب تحويل العقل عند تعلم البرمجة الحسابية. والأهم من ذلك، أن Erlang لغة IO مكثفة، مناسبة للمشاريع التي تتميز بخصائص التوزيع، ولكنها تجد صعوبة في الطلب الكثيف على الحوسبة، ومع ذلك، هناك مساحة لتحسين وتطويرها.
في السنوات الأخيرة، تطور Erlang في الصين بسرعة كبيرة، ويُستخدم بشكل رئيسي في تطوير أنظمة خوادم الألعاب. من السهل تعلم Erlang، ويتمتع بمستوى عالٍ من المرونة في التعامل مع الأخطاء، والتطوير السريع، وهو ما يجعله مثاليًا للتطوير في الألعاب على الويب والأجهزة المحمولة. خاصة في شركات الألعاب الصغيرة والمتوسطة في غوانغتشو، شينزن، وما إلى ذلك، تقريبًا كلها تستخدم Erlang. أنظمة خوادم الألعاب التي تستخدم لغة C++ تحتاج إلى جمع خبرة تقنية طويلة، وتبدو كفاءة تطوير C++ أقل من Erlang، وقد تكون تكلفة التوظيف مرتفعة، مما يشكل تحديًا كبيرًا للشركات الناشئة. ولكن الشركات الصغيرة والمتوسطة تهتم أكثر بالمنتجات من التكنولوجيا، وهو ما يكون غير مفيد لتنمية Erlang في الصين، حيث يستخدم معظم الشركات نفس الإطار الجاهز من Erlang، مما يؤدي إلى التركيز على معالجة منطق الأعمال المحددة على التركيز على تحسين الطبقات الأساسية. هذا ليس جيدًا جدًا لتطوير Erlang.
تطورت Erlang في الخارج لفترة طويلة كلغة ناضجة وقد تم إثباتها، ويتم تطبيقها حاليًا في أكثر من 100 مشروع تطويري كبير يشمل حلول النطاق العريض، GPRS وATM، مما يمتلك تجربة مشروع غنية، يقدم إطار العمل البرمجي (OTP) مجموعة أدوات وكتب وفرمة بنية تحتية كاملة لتحقيق قوة الاستقرار والقدرة على التغلب على الأخطاء. ولكن بالمقارنة مع استخدامها في تطوير الألعاب في الداخل، يتم استخدامها في الخارج بشكل رئيسي في مجالات الخدمات الويب، الهاتف، أنظمة الرسائل والبنوك التجارية. في بداية هذا القرن، كان هناك حوالي 36000 صفحة على موقع Erlang.org، بعد عقد من الزمن، ارتفع هذا الرقم إلى 2.8 مليون، مما يعني أن مجتمع Erlang يوسع باستمرار، بما في ذلك المشاريع التجارية، البحثية والخارجية، التسويق الفيروسي، الكتب والمدونات، وبالطبع، كل هذا يعود إلى التصميم الأصلي لـ Erlang - لمعالجة تحديات مجالات معينة وتحفيز النمو.