لغة Mojo أصبحت مفتوحة المصدر أخيرًا... لذا قمت بتجربتها

BBetter Stack
컴퓨터/소프트웨어

스크립트

00:00:00موجو، لغة البرمجة، وصلت للتو إلى الإصدار 1.0، والتوقيت غريب بعض الشيء.
00:00:05أُطلقت بمترجم مغلق، وبعد سبعة أيام قاموا بتوفيرها كمصدر مفتوح،
00:00:09وكانت كوالكوم قد اشترت الشركة للتو.
00:00:12ولكن دعونا ننسى كل ذلك لفترة وجيزة.
00:00:14ميزة موجو الحقيقية هي تقديم كود يشبه بيثون دون التخلي عن سي بلس بلس أو كودا من أجل السرعة.
00:00:20لذا دعونا نرى ما إذا كان هذا يحقق نتائجه بالفعل.
00:00:27الهدف الأساسي من لغة موجو يكمن في هذا السؤال.
00:00:30ماذا لو كان بإمكانك كتابة كود يبدو ويشبه تماماً لغة بيثون،
00:00:34ولكن تشغيل الأجزاء المهمة حقاً دون الحاجة للتخلي عن سي بلس بلس أو كودا؟
00:00:39لغة واحدة سهلة القراءة تعمل عبر وحدات المعالجة المركزية ورسوميات الرسوم.
00:00:42تلك هي الفكرة الأساسية هنا.
00:00:43والآن بعد أن وصلت موجو أخيرًا إلى الإصدار 1.0، أردت حقاً معرفة مدى صحة كل هذا.
00:00:49لذا قبل أن نخوض في قضايا كوالكوم والمصدر المفتوح وكل ذلك، دعونا نقوم بتشغيلها مباشرة.
00:00:53إذا كنت تستمتع بأدوات البرمجة لتسريع سير عملك، فتأكد من الاشتراك.
00:00:57لدينا مقاطع فيديو تصدر طوال الوقت.
00:00:59سأقوم بتنفيذ ذلك على جهازي، ولكنني لن أقدم درسًا تعليميًا عن موجو هنا.
00:01:03إذا لم ترها من قبل، فنعم، ستشبه لغة بيثون تمامًا،
00:01:07ولكنك ستلاحظ بعض الاختلافات الرئيسية.
00:01:10على الجانب الأيسر توجد لغة بيثون.
00:01:12وعلى الجانب الأيمن توجد لغة موجو.
00:01:13إنها نفس الحلقة التكرارية، نفس الشبكة، ونفس الحد الأقصى للتكرار.
00:01:17لن أستعرض أيًا من العمليات الحسابية الخاصة بهذا الأمر.
00:01:20راقب حلقتي التكرار أثناء تنفيذهما.
00:01:21إنهما تؤديان نفس الغرض تمامًا.
00:01:23سنقوم بتشغيل كود بيثون أولاً هنا.
00:01:26حسنًا، ممتاز.
00:01:27لقد عمل.
00:01:28تم التنفيذ.
00:01:28والآن، نفس البرنامج ولكن مترجم باستخدام لغة موجو.
00:01:32مرة أخرى، دعنا نشغله.
00:01:35وبوم.
00:01:35ها قد انتهينا.
00:01:36الآن، قيم المجموع التحقيقي لن تتطابق في الرقم الأخير تمامًا.
00:01:39فهي تختلف بمقدار بضع مئات من أصل ربع مليون.
00:01:43تقوم بيثون بعملية الضرب أولاً ثم الجمع.
00:01:45بينما يمكن لمترجم موجو دمج ذلك في تعليمة برمجية واحدة.
00:01:49تأخذ بضع وحدات بكسل تكرارًا إضافيًا.
00:01:51اعتبر الثواني هنا هي الرقم الحقيقي.
00:01:54وهذا ليس مكتبة نامباي.
00:01:55إنه ليس نموذجًا ذكيًا.
00:01:56الأداء لا يقتصر فقط على تسريع حلقة المعالج المركزي.
00:02:00يمكنك البدء باستخدام بيثون لأنها سهلة الاستخدام.
00:02:03ثم يتجه المسار بعد ذلك نحو سي بلس بلس أو كودا.
00:02:06حينها ستصبح مالكاً لملفين يبدآن بالتباعد عن بعضهما البعض نوعاً ما.
00:02:09إذن، إليك السؤال الذي تطرحه لغة موجو.
00:02:12هل يمكن للملف الذي تقرأه أن يكون هو نفس الملف الذي يتم تنفيذه على معالج الرسوميات؟
00:02:17هذه الدالة بمثابة نواة التشغيل.
00:02:18كل خيط بمعالج الرسوميات يضيف زوجًا واحدًا من الأرقام.
00:02:20هذا كل ما في الأمر.
00:02:21لم أقم بالتحول إلى ميتال أو سويفت أو كودا.
00:02:24قم بترجمته.
00:02:26والآن أصبح الكود قيد التشغيل.
00:02:28إذن، نعم.
00:02:30بإمكان موجو القيام بشيء مثير للاهتمام حقًا هنا.
00:02:32ولقد قمت للتو بترجمة نواة تشغيل رسومية تعمل على جهاز ماك بوك باستخدام نفس لغة البرمجة التي كنت أكتب بها
00:02:38الكود العادي، وهي بيثون.
00:02:40يبدأ كود تعلم الآلة الخاص بك بلغة بيثون لأن بيثون سهلة التعامل.
00:02:44نحن جميعًا نعلم ذلك.
00:02:45ثم، في نهاية المطاف، تبدأ أهمية الأداء في الظهور.
00:02:48لذلك، يتم إعادة كتابة الأجزاء المهمة بلغة سي بلس بلس أو كودا.
00:02:52والآن، أصبحنا نحافظ على نسختين مختلفتين من نفس النظام.
00:02:55ومرة أخرى، بمرور الوقت، يؤدي ذلك فقط إلى مزيد من الارتباك.
00:02:58ميزة موجو تتمثل في أن الملف المقروء والملف السريع هما في الواقع نفس الشيء تمامًا.
00:03:03الشخص الذي يقف وراء كل هذا هو كريس لاتنر.
00:03:06لقد قام ببناء نظام LLVM، ثم كلانغ، وبعد ذلك سويفت.
00:03:10ولكن تشغيل نواة رسومية يعد أمرًا واحدًا.
00:03:14أما تسمية لغة البرمجة بالإصدار 1.0، فهذا أمر مختلف بعض الشيء هنا.
00:03:18إذن، ماذا تعني كلمة 1.0 حقًا هنا؟
00:03:21هذا لا يعني أن موجو قد اكتملت تمامًا.
00:03:23بل تعني إلى حد ما الاستقرار.
00:03:25هناك وعود بأن الكود الذي تكتبه اليوم لن تتعطل.
00:03:29هذا ما يعنيه إصدار رئيسي كهذا.
00:03:30ولكنك ستصادف أول جزء غريب.
00:03:32وصلت موجو إلى الإصدار 1.1 قبل أن يصبح مترجمها مفتوح المصدر حتى.
00:03:37المكتبة القياسية كانت قد أصبحت مفتوحة بالفعل في مارس 2024.
00:03:40 ونوى التشغيل القصوى فتحت في عام 2025.
00:03:43ولكن المترجم، الشيء الفعلي الذي يقوم بالترجمة، ظل مغلق المصدر حتى 18 أغسطس من هذا العام.
00:03:50باستخدام رخصة أباتشي 2.0، وهو أمر مهم لأنه قبل سبعة أيام فقط عندما تم طرح موجو 1.0، كانت لا تزال مغلقة.
00:03:57وهذا يجيب عن واحدة من أكبر الانتقادات التي واجهتها موجو لمدة ثلاث سنوات متتالية.
00:04:02اعتاد الناس قول: صحيح، لكن المترجم مغلق.
00:04:05لم يعد بإمكاننا قول ذلك بعد الآن، وهو ما يبدو وكأنه يتحرك في الاتجاه الصحيح.
00:04:10قد يكون الأمر كذلك.
00:04:10إلى أن تنظر إلى ما حدث قبل ثلاثة أسابيع.
00:04:14اكتمل استحواذ كوالكوم في 29 يوليو.
00:04:16وتم طرح موجو 1.0 في 11 أغسطس.
00:04:19وانفتح المترجم في 18 أغسطس.
00:04:21لذا فإن أكبر إنجاز في الانفتاح في تاريخ موجو حدث في غضون أقل من ثلاثة أسابيع بعد توقف موديلر عن كونها شركة مستقلة.
00:04:29وهذا يولد على الفور طريقتين مختلفتين تمامًا لقراءة هذا الموقف.
00:04:33الأولى هي أن كوالكوم اشترت موديلر لأنها تريد توفر موجو في كل مكان.
00:04:37على الأرجح لا.
00:04:37أو أن كوالكوم اشترت موديلر، وفي النهاية سيتم استيعاب هذا الأمر بأكمله داخل شركة أكبر بكثير.
00:04:44شركة كوالكوم تصنع الرقاقات.
00:04:45تصبح لغة البرمجة التي تُترجم جيداً للرقاقات ذات قيمة أكبر بكثير.
00:04:49يمكننا في الواقع استخدامها بحرية.
00:04:50لذا، خطوة المصدر المفتوح هذه تبدو منطقية.
00:04:53ولكن ما إذا كانت موجو ستنجح على الأرجح لن يتوقف على كوالكوم.
00:04:57بل سيعتمد على ما إذا كانت لغة البرمجة جيدة بما يكفي لتبرير الانتقال إليها في المقام الأول.
00:05:02ولكن مرة أخرى، هنا يبدأ كل ذلك في أن يصبح معقدًا.
00:05:05تعاني موجو من مشكلة في المقارنات المعيارية.
00:05:07بالعودة إلى عام 2023، كان الرقم الكبير هو أن موجو يمكن أن تكون أسرع بـ 68,000 مرة من بيثون.
00:05:13هذا أمر جنوني.
00:05:14هناك أيضًا منشور لا يزال نشطًا يدعي أن موجو أسرع بنسبة 50% من رست في تحليل الحمض النووي.
00:05:19تم تفكيك هذا الاختبار المعياري بالكامل.
00:05:21وأظهروا أن الاختبار لم يكن يقيس ما ادعى قياسه.
00:05:25ولا يزال بإمكانك رؤية رقم 35,000 مرة مترددًا هنا وهناك.
00:05:29وهذا يأتي من ضرب المصفوفات.
00:05:31ولكن ما يقارنونه هو، حسنًا،
00:05:34من جهة، تنفيذ موجو مصمم بالكامل ومتوازي ومجزأ.
00:05:40ومن الجهة الأخرى، حلقة تكرار ثلاثية بلغة بيثون النقية.
00:05:44نعم، حلقة تكرار ثلاثية.
00:05:45ليست نامباي، بل حلقة متداخلة لن يستخدمها أي شخص على وجه الأرض فعليًا.
00:05:49لذا لا أهتم حقًا بموضوع أنها أسرع بـ 35,000 مرة.
00:05:52كنت أود الحصول على أرقام فعلية من هذا الجهاز.
00:05:54أنا أستخدم معالج إم 4 برو مقارنة بلغة بيثون النقية.
00:05:57مقارنة بلغة بيثون النقية، فهي أسرع بـ 26 مرة ونصف.
00:06:00ومقارنة بمكتبة نامباي، لكل عملية، فهي أسرع بنحو مرتين تقريبا.
00:06:05من الواضح أن الرقم 26 لا يوازي 68,000.
00:06:08ولكن 26 مرة لا تزال رقمًا جيدًا لأن نامباي تعتمد على لغة سي في جوهرها.
00:06:14عند هذه النقطة، أنت لا تتفوق حقًا على بيثون.
00:06:16بل إنك تتفوق على لغة سي من خلال سلوك ذاكرة أفضل.
00:06:19وهذا هو الشيء المزعج حقًا بشأن موجو.
00:06:21لكن الأداء ليس في الواقع السبب الأكبر الذي يجعلني مترددًا في استخدام موجو اليوم.
00:06:25لقد عبثت بها من قبل.
00:06:27وأقوم بتشغيلها هنا اليوم.
00:06:28الشيء الكبير هو الاستقرار.
00:06:30الآن، إلى أي مدى هذا مستقر؟
00:06:32لأن موجو 1.0 تأتي مع 41 تحذيرًا لواجهات برمجة تطبيقات غير مستقرة، بما في ذلك int وprint وlen، وهي أدوات أساسية مدمجة.
00:06:40تم تصنيفها كغير مستقرة داخل ما يسمى بإصدار الاستقرار.
00:06:45وفي نفس اليوم الذي تعد فيه موجو بعدم تعطل الكود الخاص بك، أدى إزالة كلمة FN المفتاحية إلى كسر ما يقرب من 39 حزمة في النظام البيئي.
00:06:52الآن، كلمة FN المفتاحية التي كانت هامة للغاية في كيفية عمل موجو قد أُزيلت بالكامل.
00:06:58لا يوجد عملية FC.
00:06:59وعلى الرغم من أن المترجم أصبح الآن مفتوح المصدر، إلا أنهم لا يقبلون المساهمات عليه حتى الآن.
00:07:04إذن موجو 1.0 مستقرة، على ما أعتقد.
00:07:07ولكن ربما ليست بالاستقرار الذي يزعمونه.
00:07:09مما يقودنا إلى السؤال الوحيد الذي يهم حقًا.
00:07:12هل يجب عليك استخدام هذا؟
00:07:13الآن، إذا كنت تكتب نوى تشغيل لرسوميات، كودا، تريتون، أو ذلك العالم، فأعتقد أن موجو تستحق بالتأكيد يومًا أو يومين.
00:07:21لغة واحدة عبر معالج الرسوميات ومعالج المعالجة المركزية، وقد قمت بترجمة نواة رسومية تعمل على جهاز محمول.
00:07:27ليس هناك الكثير من اللغات الأخرى التي تقوم بذلك.
00:07:29ولكن لا يزال أمام هذا المجال الكثير من المتسع للنمو.
00:07:31لذا فلن أمنحها الأولوية بأي حال من الأحوال في الوقت الحالي.
00:07:35قبل ثلاث سنوات، كانت الحجة ضد موجو بسيطة للغاية.
00:07:38لغة جديدة رائعة، ولكن من سيستخدمها؟
00:07:40لقد كانت لغة مغلقة من شركة ناشئة تطلب من المطورين المراهنة بكل شيء عليها.
00:07:44اليوم، أصبح المترجم يخضع لترخيص Apache 2.0.
00:07:47اللغة وصلت إلى الإصدار 1.0.
00:07:48وتلك الشركة الناشئة أصبحت الآن جزءًا من كوالكوم.
00:07:51أنا جوش من بيتستاك.
00:07:53إذا كنت تستمتع بنصائح وحيل البرمجة كهذه، فتأكد من الاشتراك.
00:07:56سنراكم في فيديو آخر.

핵심 요약

على الرغم من وصول لغة موجو إلى الإصدار 1.0 وتحول مترجمها إلى المصدر المفتوح تحت مظلة كوالكوم، إلا أن استمرار وجود واجهات برمجة تطبيقات غير مستقرة يفرض الحذر عند تبنيها.

하이라이트

  • تجمع لغة موجو بين بساطة بناء الجملة الخاص بلغة بيثون وسرعة أداء لغات سي بلس بلس وكودا في نفس الوقت.

  • وصل مترجم لغة موجو إلى الإصدار 1.0 وأصبح مفتوح المصدر تحت رخصة أباتشي 2.0 بعد استحواذ كوالكوم.

  • حققت لغة موجو أداءً أسرع بنحو 26.5 مرة مقارنة بلغة بيثون النقية على معالج إم 4 برو.

  • تتضمن موجو 1.0 نحو 41 تحذيرًا لواجهات برمجة تطبيقات غير مستقرة رغم الترويج لاستقرار الإصدار الرئيسي.

타임라인

أهداف لغة موجو والأداء الفعلي

  • تهدف موجو إلى كتابة كود يشبه بيثون مع تنفيذ الأجزاء الحرجة بسرعة عالية دون الحاجة للتحول إلى سي بلس بلس.
  • سجلت لغة موجو أداءً أسرع بـ 26.5 مرة مقارنة بلغة بيثون النقية عند تشغيل حلقة تكرار على معالج إم 4 برو.

تتمحور فكرة لغة موجو حول دمج بساطة بيثون مع الأداء العالي. عند مقارنة تنفيذ حلقة تكرار بين بيثون وموجو، تظهر النتائج فارقًا كبيرًا في السرعة لصالح موجو دون الحاجة لاستخدام مكتبات معقدة أو نماذج ذكاء اصطناعي.

تشغيل نواة الرسوميات وتطوير اللغة

  • تتيح موجو كتابة كود موحد يعمل على معالجات المركز والرسوميات باستخدام نفس الملف البرمجي.
  • أصدرت موجو نسختها 1.0 وفتحت مصدر المترجم بعد استحواذ شركة كوالكوم.

تتغلب موجو على مشكلة الحفاظ على نسختين مختلفتين من النظام بين بيثون ولغات الأداء العالي. يتمكن المطور من ترجمة نواة رسومية تعمل على جهاز محمول باستخدام بنية تشبه بيثون، بالتزامن مع خطوات فتح المصدر والإصدار الرئيسي.

التحول نحو المصدر المفتوح والاستقرار والتوصيات

  • خضع مترجم موجو لرخصة أباتشي 2.0 بعد أقل من ثلاثة أسابيع من إتمام استحواذ كوالكوم.
  • تحتوي النسخة 1.0 على 41 تحذيرًا لواجهات برمجة تطبيقات غير مستقرة تشمل أدوات أساسية.

يثير توقيت فتح مصدر المترجم بعد استحواذ كوالكوم تساؤلات حول مستقبل اللغة. كما أن وجود تحذيرات تخص استقرار الوظائف الأساسية وإزالة كلمات مفتاحية رئيسية يؤدي إلى كسر بعض الحزم في النظام البيئي، مما يجعل التبني الفوري خيارًا يحتاج إلى التروي.

커뮤니티 글

아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!

이 영상에 대해 글쓰기