اخلاء مسؤولية | DISCLAIMER
– يعد دعم لغة برمجة في Meta قرارًا دقيقًا ومدروسًا للغاية.
– نحن نشارك إرشادات لغة البرمجة الداخلية التي تساعد مهندسينا والمطورين لدينا على اختيار أفضل لغة لمشاريعهم.
– Rust هو أحدث إضافة إلى قائمة Meta للغات المدعومة من جانب الخادم.
في Meta ، نستخدم العديد من لغات البرمجة المختلفة لمجموعة متنوعة من الأنظمة الأساسية وحالات الاستخدام. إن دعم لغة جديدة ليس قرارًا نتخذه باستخفاف. من المهم أن تكون كل لغة نتبناها هي الأنسب لحالة استخدام معينة ، لذلك فإننا نبذل مستوى عالٍ من العناية كلما قمنا بتقييم لغة. تميل قرارات اللغة إلى الالتزام بمجرد اتخاذها ، لذلك نريد أن نتوخى الحذر منذ البداية لمنح مهندسينا أفضل الأدوات للعمل بها.
اليوم ، نشارك رؤى حول إرشاداتنا الداخلية حول اللغات المختلفة التي تلعب دورًا مهمًا في Meta – وعلى وجه التحديد لغات البرمجة من جانب الخادم ، والتي يعد Rust أحدث إضافة إليها.
ما هي اللغة المدعومة في Meta؟
قبل أن ندخل في التفاصيل الفردية ، إليك ما يعنيه المدعوم (ولا يعنيه) داخل Meta:
إذا كانت اللغة مدعومة ، يمكن للمطورين الاعتماد على الحصول على تجربة جيدة في تحرير التعليمات البرمجية وتصحيح الأخطاء والبناء والنشر ، بالإضافة إلى المكتبات الأساسية وقابلية التشغيل البيني. يمكن للمطورين أيضًا الاعتماد على عدم اختفاء هذه التجربة – لن يُطلب منهم الابتعاد عن لغة مدعومة. في معظم الحالات ، توصي Meta باختيار لغة مدعومة للمشاريع والخدمات الجديدة.
يعد الدعم الكامل للغة استثمارًا كبيرًا للميتا ، لذا فإن اللغات “ذات الذيل الطويل” مدعومة من المجتمع. بالنسبة لتلك اللغات ، هناك ضمانات أقل بكثير ، وسيتعين على الفرق التي تتبناها تحمل عبء الصيانة. في معظم الحالات ، يجب أن تتجنب الفرق استخدامها للتطبيقات الجديدة ، ما لم يكن لدى الفريق بالفعل استثمار كبير في اللغة.
اللغات الأساسية المدعومة من جانب الخادم في Meta هي Hack و C ++ و Rust و Python.
بالنسبة للخدمات الخلفية الحساسة للأداء ، نشجع C ++ و Rust. الصدأ هو إضافة جديدة إلى هذه القائمة. هناك تزايد سريع في بصمة الصدأ في منتجاتنا وخدماتنا ، ونحن نلتزم بـ Rust على المدى الطويل ونرحب بالمتبنين الأوائل.
بالنسبة لأدوات CLI ، نوصي بـ Rust. هذه توصية جديدة لهذا العام.
لمنطق الأعمال والتطبيقات عديمة الحالة نسبيًا ، يتمتع نظام Hack البيئي بأعلى مستوى من الأتمتة والدعم في Meta وهي اللغة الموصى بها.
أخيرًا ، تواصل Meta دعم مطوري Python بشدة. بالنسبة لعلوم البيانات وتطبيقات ML و Instagram ، لا تزال Python هي اللغة المفضلة ، ونواصل الاستثمار في التجربة مع هذا النظام البيئي.
لحالات استخدام محددة ، ندعم لغات أخرى ، بما في ذلك Java و Erlang و Haskell و Go. هذه اللغات غير مدعومة حاليًا على نطاق واسع خارج حالات الاستخدام المحددة.
كيف وصلنا إلى قائمة اللغات المدعومة لدينا؟
دعنا نوضح سبب وجود قائمة اللغات المدعومة ولماذا نحجم عمومًا عن إضافة لغات إلى تلك القائمة (على الرغم من أن Rust هو إضافة جديدة). السبب الرئيسي هو أن الأمر يتطلب استثمارًا هندسيًا كبيرًا لدعم لغة برمجة على مقياس Meta ، وهذه التكلفة موزعة على نطاق واسع – وليس فقط يتحملها المستخدمون. بعض الأمثلة:
دعم المكتبات الأساسية. هناك عدد قليل جدًا من الخدمات المعزولة ، وكلما قل عدد اللغات المتوفرة لدينا ، قل العبء الواقع على المكتبات الأساسية.
الأمن والخصوصية. تزيد الحزمة المجزأة من تعقيد بناء ميزات أمان وخصوصية مهمة في خدماتنا.
المخاطر التشغيلية. إذا واجهت بعض الخدمات مشكلة حرجة ، فستتطلب مساعدة فورية. لقد أنشأنا قدرًا لا يُصدق من الخبرة في تشخيص مشكلات الإنتاج وحلها ، وتعتمد استجابتنا للحوادث على القدرة على قراءة الخدمات وفهمها وتصحيح أخطائها للمساعدة في حادث كبير. تجنب التجزئة يقلل من مخاطر التشغيل.
خبرة. نحن نبني ونحافظ على كتلة حرجة من المهندسين ذوي الخبرة في كل لغة من هذه اللغات.
تجربة المطور. اللغات المدعومة لديها فرق تعمل على تحسين مجالات مثل دعم IDE وبناء السرعة وتجربة تصحيح الأخطاء والمزيد.
قد يكون اختيار لغة دون المستوى الأمثل لمشروع ما مكلفًا من حيث الوقت والكفاءة والإنتاجية. لذا ، يجدر وضع كل لغة نقوم بتقييمها تحت قدر كبير من التدقيق. توضح الأمثلة أعلاه مقدار الاستثمار الذي نضعه في دعم اللغة.
Rust هي أحدث لغة من جانب الخادم في Meta
منذ أن بدأنا رحلتنا مع Rust ، زاد عدد المشاريع التي تستخدم Rust داخل Meta بمعدل متسارع. يسعدنا أن نرى Rust مضافًا إلى قائمة اللغات المدعومة من جانب الخادم ، مما يمنح مهندسينا المزيد من الأدوات والمرونة والدعم لعملهم. تلتزم Meta بتقديم دعم طويل الأمد للغات البرمجة التي يستخدمها مطورونا ، وهذا التحرك يشير إلى التزام Meta طويل المدى ودعمه لنظام لغة Rust.