في محاولة لاستبدال لغة C ++ الموقرة ولكن البطيئة ، قدم باحثو Google لغة برمجة مفتوحة المصدر "تجريبية" جديدة يطلق عليها اسم Carbon.
يمكن استخدام الكربون كلغة لاحقة لـ C ++ ، لغة توفر نقطة انطلاق بسيطة للمطورين إلى لغة أحدث تتناول مفاهيم التطوير المعاصرة مثل أمان الذاكرة والأدوية.
سيكون هذا مشابهًا لكيفية قيام Microsoft ببناء Typescript لتحديث JavaScript و Kotlin لتقوية نقاط الضعف في Java.
طورت Google عددًا من لغات البرمجة على مر السنين ، اكتسب بعضها شهرة كبيرة وشهرة.
على سبيل المثال ، تم تطوير Golang (أو Just Go) لتسهيل إنشاء الخوادم والأنظمة الموزعة ، ثم تبناها عامة الناس لاحقًا.
النبلة لغة برمجة، الذي تم إنشاؤه كبديل لجافا سكريبت ، لم يصبح معروفًا حتى إطلاق Flutter.
قدم تشاندلر كاروث ، أحد موظفي Google ، فكرته عن لغة برمجة جديدة تسمى Carbon في 19 يوليو 2022 ، في مؤتمر Cpp North في تورنتو ، بحسب كونور هوكسترا، الذين حضروا وسجلوا الشرائح.
من أجل تحديد السيناريو ، أوضح كاروث كيف أن العديد من لغات البرمجة الأكثر شهرة في الوقت الحاضر لديها أحفاد تمكن المطورين من أن يكونوا منتجين بسرعة والاستفادة أيضًا من تصميم اللغة المعاصر.
لنبدأ بمقدمة عامة للغة برمجة Carbon ، بما في ذلك ميزاتها والغرض من اختراع Google لها والمزيد.
مقدمة في لغة البرمجة الكربونية
في 19 يوليو 2022 ، كشفت Google عن Carbon كأحدث لغة برمجة قامت بإنشائها. كان من المفترض أن تحل محل C ++ تجريبيا.
بفضل نظام الأدوية، مما يلغي الحاجة إلى إعادة التحقق من الكود لكل مثيل ، سيتم إنشاء Carbon على أساس مفاهيم البرمجة الحديثة.
بحلول نهاية العام ، يخطط التصميم لتوفير نسخة تشغيلية أساسية (الإصدار 0.1).
تكامل الذاكرة هو عنصر حاسم يفتقده C ++. تعد مشكلات الوصول إلى الذاكرة أحد المصادر الرئيسية للعيوب الأمنية.
يعد تطوير عمليات التحقق من الحدود الديناميكية والتتبع الأكبر للحالات غير المهيأة ووضع إنشاء التصحيح الافتراضي الشامل من أهداف فريق Carbon. ينوي المبدعون إنشاء مجموعة فرعية آمنة من الكربون بمرور الوقت.
ومع ذلك ، فيما يلي بعض الخصائص المهمة للغة البرمجة الجديدة:
- لتسمية الأنواع ، استخدم التعبيرات.
- الأدوية القوية مع فحوصات التعريف
- الأنواع تنفذ واجهات على وجه التحديد
- عبارات المقدمة والقواعد الأساسية
- المؤشرات تسمح بالوصول غير المقيد والتحول.
- قيم معلمات إدخال الوظيفة للقراءة فقط.
- مساحة اسم الجذر هي الحزمة.
- يمكن استيراد واجهات برمجة التطبيقات باستخدام أسماء الحزم الخاصة بهم.
- يتم التصريح عن طريقة عبر معلمة كائن صريحة.
- الفصول نهائية بشكل افتراضي ؛ هناك ميراث واحد فقط
ميزات الكربون
حديثة ومتطورة
- الترقيات بين إصدارات الكربون بسيطة وقائمة على الأدوات.
- أسس اللغة القوية ، خاصة إذا كنت تستخدم C ++ ، وسهلة التعلم
- أسس أكثر أمانًا ونهجًا تدريجيًا لمجموعة فرعية آمنة للذاكرة
الترحيب بمجتمع المصادر المفتوحة
- مجتمع يسعى إلى أن يكون دافئًا وقبولًا وجذابًا
- أهدافها وأولوياتها حوكمة متميزة وقوية
- إستراتيجية الكل في واحد مع مترجم ، ومكتبات ، ووثائق ، وأدوات ، وإدارة الحزم ، والمزيد
سريع ومتوافق مع C ++
- العمل مع كود C ++ لديك بالفعل ، بما في ذلك الميراث والقوالب
- مع LLVM ، أداء مشابه لـ C ++ والوصول منخفض المستوى إلى البتات والعناوين
- تصميمات سريعة وقابلة للتطوير ومتوافقة مع أنظمة بناء C ++ الموجودة لديك
لماذا قامت Google ببناء لغة البرمجة الكربونية؟
تستمر كتابة البرامج الحاسمة للأداء في الغالب بلغة C ++ ، والتي تحتوي على قواعد أكواد واستثمارات ضخمة ومتوسعة.
ومع ذلك ، فإنه يواجه مشكلة في التقدم وتلبية مطالب المطورين كما ذكر أعلاه ، ويرجع ذلك إلى حد كبير إلى تراكم الديون التكنولوجية لسنوات.
من الصعب للغاية تحسين C ++ بشكل تدريجي بسبب الديون الفنية التي تراكمت عليها وكذلك الصعوبات في عملية تطورها.
تتمثل الطريقة المثالية لحل هذه المشكلات في البدء بأساس لغوي قوي ، مثل نظام الأدوية المعاصر ، وهيكل الكود المعياري ، وبناء الجملة المتسق والمباشر ، بدلاً من وراثة تقليد C أو C ++ بشكل مباشر.
تقدم Go و Swift و Kotlin و Rust والعديد من اللغات المعاصرة الأخرى بالفعل تجربة تطوير رائعة. يجب على المطورين القادرين على استخدام إحدى هذه اللغات الحالية.
لسوء الحظ ، فإن تصميم هذه اللغات يعيق اعتمادها وترحيلها من C ++ بشدة. تتضمن هذه العوائق عبء الأداء والتعديلات على التصميم الاصطلاحي للبرنامج.
الكربون ليس محاولة لتحسين C ++ تدريجيًا ؛ بدلاً من ذلك ، إنها استراتيجية لغة لاحقة. ينصب تركيزها على قابلية التشغيل البيني C ++ ، فضلاً عن القبول والترحيل على نطاق واسع للمطورين وقواعد الكود التي تستخدم حاليًا C ++.
يجب أن تحتوي لغة الاستبدال C ++ على:
- يعد الأداء الذي يمكن مقارنته بـ C ++ خاصية مهمة للمطورين.
- منحنى تعليمي يمكن التحكم فيه ومستوى إلمام مبرمجي C ++
- الترحيل قابل للتطوير ويتضمن بعض ترجمة كود C ++ الاصطلاحية من المصدر إلى المصدر.
- تعبيرات مماثلة ودعم لهندسة وتصميم البرامج الحالية.
- قابلية التشغيل البيني مع C ++ التي تتسم بالسلاسة وثنائية الاتجاه ، مما يسمح لأي مكتبة بتبني Carbon دون الحاجة إلى نقل بقية المكدس.
من خلال هذه الإستراتيجية ، تضيف Google إلى النظام البيئي الموجود بالفعل لـ C ++ ويدمج الاستثمارات الحالية وقاعدة الرموز ومجتمعات التطوير.
تبنت بعض اللغات هذا النهج لأنظمة بيئية مختلفة ، ويسعى Carbon إلى لعب وظيفة مماثلة لـ C ++ في هذه المواقف:
- جافا - كوتلن
- جافا سكريبت - TypeScript
- C ++ - الكربون
C ++ VS Carbon Code
يجب أن يكون للكربون منحنى تعليمي منخفض إذا كنت مطور C ++ بالفعل. وهي تتألف من مجموعة ثابتة من التراكيب النحوية التي يجب أن تبدو طبيعية وسهلة القراءة والفهم.
مثال على كود C ++:
يتوافق كود الكربون هذا مع:
الكربون مقابل الصدأ
لغة معاصرة أخرى مصممة صراحة لتلبية متطلبات تطبيقات الأداء الآمن للذاكرة تسمى Rust.
فلماذا لا تستخدم الصدأ ببساطة؟
بينما يجادل البعض بأن Rust ، الذي بدأ كمشروع Mozilla ثم نما ليصبح له عدد كبير من المتابعين ، هو خليفة لـ C ++ ، يشك كاروث في ما إذا كان التوازي لا يزال صالحًا.
تعتبر لغة Rust بلا شك لغة رائعة لبدء مشروع جديد ، ولكن نظرًا لأنها تفتقر إلى "قابلية التشغيل البيني ثنائي الاتجاه" للغات مثل Java و Kotlin ، فمن الصعب الانتقال إليها تدريجيًا.
ألقى كاروث محاضرة في CPP North وشجع الأشخاص الذين كانوا يستخدمون Rust بالفعل على الاستمرار في ذلك. يجب على المطورين الذين لديهم بالفعل قواعد أكواد C ++ كبيرة يصعب تحويلها إلى Rust استخدام Carbon.
على وجه الخصوص ، الكربون هو ما أشار إليه كاروث على أنه "لغة لاحقة" ، والتي تم إنشاؤها فوق نظام بيئي موجود ، في هذا المثال C ++.
لهذا الغرض ، من المفترض أن يكون Carbon متوافق تمامًا مع كود C ++ الحالي ، حتى لو كان له العديد من الأهداف مع Rust ، مثل مساعدة المبرمجين في إنشاء "تطبيقات ذات أداء حرج".
بالإضافة إلى ذلك ، تم تصميمه لجعل الانتقال من C ++ إلى الكربون بسيطًا قدر الإمكان.
وفي الختام
أخيرًا ، بذل مبتكرو لغة الكربون جهدًا للانتباه إلى عملية الإنشاء. كود المشروع متاح للطلب ويتم تخزينه بشكل مفتوح جيثب، ويتم تعريف ثقافتها على أنها شاملة ومفتوحة للمواطنين الخاصين وقطاع تكنولوجيا المعلومات.
اعتقد فريق Carbon أن Carbon بحاجة إلى أن يكون مشروعًا مستقلاً يقوده المجتمع وليس فقط مشروعًا تغذيه Google من أجل التطوير في المستقبل.
وأضاف كاروث أنه على الرغم من اهتمام عدد من شركات تكنولوجيا المعلومات ، فإن هذا المفهوم لا يزال في المرحلة التجريبية.
اترك تعليق