سؤال

ماذا فعلت لغة ميرا العرض على JRuby وGroovy وScala؟

هل كانت مفيدة؟

المحلول

وفق مقابلة مع خالق ميرا الهدف من Mirah (والتي تعني "روبي" باللغة الجاوية) هو إنشاء نسخة عالية الأداء من روبي.ما يكفي من بناء الجملة المشابه لـ Ruby لجعله مريحًا للعمل معه، ولكنه لا يزال قريبًا بدرجة كافية من دلالات Java وJVM بحيث يمكن تشغيله دون تحميل طبقة وقت تشغيل كبيرة أعلى JVM.

اقتباس الاختيار:

إن الكثير من فوائد Mirah مقارنة باللغات المشابهة يعود إلى كونها خفيفة الوزن.في Groovy، أو Scala، أو JRuby، أو Clojure، أو Jython، في اللحظة التي تكتب فيها "Hello, World"، تكون قد قيدت نفسك بمكتبة وقت التشغيل.في Mirah، تكون عبارة "Hello, World" مقتضبة تمامًا كما في JRuby، ولكنها تتمتع بميزة إضافية تتمثل في عدم فرض أي تبعيات عليك؛يدخل الملف المصدر، ويخرج ملف الفصل، وهذا كل شيء.أعتقد أن JVM يحتاج إلى لغة جديدة خالية من التبعية، وميرا هي محاولتي لتقديم واحدة.

في حين أن أداء JRuby ينافس أو يتفوق على مترجمي Ruby الآخرين، فإن أسرع كود JRuby لا يزال يتخلف عن أداء Java الخالص بترتيب من حيث الحجم.بينما يمكنك أن تتوقع تحسن أداء JRuby مع الإصدار 1.6، فإن Mirah هي محاولة لاختراق سقف الأداء وتوفير خيار للمبرمجين الذين يبحثون عن سرعات تنفيذ على قدم المساواة مع كود Java.

نصائح أخرى

على عكس اللغات الكاملة الميزة ، التي تأتي مع مكتباتها الخاصة ، فإن Mirrah أشبه بـ "الواجهة الأمامية" المختلفة لمكتبات Java.

لا يعتمد كود المرآة على بيئته الخاصة (باستثناء برنامج التحويل البرمجي في وقت الترجمة).

هذه هي الفائدة الرئيسية: بناء جملة مختلف لـ Java.

ضد.رائع

  • بناء الجملة مألوف أكثر لمبرمجي Ruby/JRuby الحاليين
  • مكتوب بشكل ثابت

ضد.جي روبي

  • مكتوب بشكل ثابت

ضد.سكالا

  • بناء الجملة مألوف أكثر لمبرمجي Ruby/JRuby الحاليين

المزايا الرئيسية هي الكتابة الثابتة (أداء أسرع على JVM وتفاعل أسهل بكثير مع مكتبات Java الموجودة) وبناء جملة مألوف (إذا أتيت من روبي).

عندما تكون التبعيات في الاعتبار (تطوير تطبيق أندرويد، على سبيل المثال) فلا يجب أن تدع هذا يوجه اختيارك للغة.سيؤدي استخدام أداة مثل Proguard إلى تكافؤ الفرص.

إذا كنت قادمًا من روبي، فإن ميرا خيار جيد.إذا كنت قادمًا من إرلانج أو هاسكل، فستحتاج إلى سكالا.إذا كنت من مستخدمي LISPer، فسوف ترغب في إلقاء نظرة على Clojure.

إذا كانت تجربتك السابقة الوحيدة هي Java، فعار عليك!- وربما ينبغي عليك اختيار Scala - إنها تكتسب شهرة سريعة باعتبارها الوريث الواضح لجافا، وأصبح دعم الأدوات حاليًا أقوى وستكون في مجتمع كبير من الآخرين الذين قاموا بنفس التحول، لذلك هناك الكثير من المدونات/ الدروس المتاحة بالفعل.

ورائع؟لا يعد Groovy هو الخيار الصحيح أبدًا في الوقت الحاضر ...

يمكنني استخدام Mirah كل يوم على Google Appengine.

فيما يلي أسباب استخدام ميرا:

  • لا مكتبة وقت التشغيل
  • بناء جملة جميل جدا
  • بسرعة مثل جافا

إن وجود جافا تحت غطاء محرك السيارة مفيد للغاية أيضًا:

  • الأنواع الصلبة
  • وثق بشكل جيد
  • حلول معروفة للمشاكل المشتركة

فعلت بعض الروعة ، والكثير من jruby وليس من سكالا. إذا كنت تعرف هذه ، جرب ميرا. إذا لم يكن كذلك ، سأذهب مع Jruby.

ميرا هو مجرد بناء جملة روبيش آخر لجافا. IMHO ليس جيدًا على الإطلاق. إنه لا يعرف شيئًا عن الأدوية الجيلية ، كما أنه يحتوي على أدوات سيئة. من الأفضل تجربة Ceylon و Xtend و Scala و Kotlin وما إلى ذلك
MIRAH يجمع فصول Java (وليس المصادر بعد الآن). يجمع Xtend إلى مصادر Java وأبسط لدرجة أن تكتشف ما يفعله تحت الغطاء. يحتوي Ceylon و Scala على stdlibs الخاصة بهما (ومع ذلك ، فإن Java interop يقترب من الكمال فيها) ، وليس متأكدًا من Kotlin. Kotlin هو طفل Jetbrains وبالتالي مرتبط بالفكرة.
jRuby لا أحب أيضًا. لديها الكثير من الأخطاء في جافا interop. كما أن لديها الكثير من العجلات التي أعيد اختراعها. أعني الترميزات (لا تستخدم سلاسل Java و regexes ولكن الأوتار المخصصة أعلى المخازن المؤقتة البايت الخام) ، iOS ، معالجة الاستثناءات ، المواضيع وما إلى ذلك.
الميزة الوحيدة من jruby هي أنها روبي. سوف تعمل العديد من كود روبي كما هي.
Groovy Otoh لا يعيد اختراع العجلة ، ويستخدم مكتبات Java التي تم اختبارها جيدًا ويضيف فقط Syntax Sugar أيضًا. أيضا Groovy-java interop رائع. يمكن أن يكون الأدوية الجيرية. المواضيع ، والاستثناءات ، والسلاسل ، والمجموعات - هي مجرد فصول جافا كما هي في جافا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top