سؤال

أشعر بالفضول لمعرفة كيفية تأثير .NET على تطبيقات Python وRuby.

هل ستكون التطبيقات المكتوبة بلغة IronPython/IronRuby محددة جدًا لبيئة .NET، بحيث تصبح خاصة بالمنصة بشكل أساسي؟

إذا لم يستخدموا أيًا من ميزات .NET، فما هي ميزة IronPython/IronRuby مقارنة بنظيراتهم غير .NET؟

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

المحلول

لا أستطيع أن أقول أي شيء عن IronRuby، لكن معظم تطبيقات python (مثل IronPython وJython وPyPy) تحاول أن تكون مطابقة لتطبيق CPython قدر الإمكان.سرعان ما أصبحت IronPython واحدة من الأفضل في هذا الصدد، وهناك الكثير من الزيارات على Planet Python حول هذا الموضوع.

الشيء الرئيسي الذي سيشجع المطورين على كتابة تعليمات برمجية مختلفة عما يكتبونه في CPython هو عدم وجود وحدات امتداد C مثل NumPy (هذه مشكلة في Jython وPyPy أيضًا).

هناك مشروع مثير للاهتمام يجب أن تراقبه وهو IronClad، والذي سيتيح لك استدعاء وحدات الامتداد C من داخل IronPython.يجب أن يعني هذا في النهاية أنه يمكنك تطوير التعليمات البرمجية ضمن CPython، باستخدام أي وحدات نمطية تريدها، وسيتم تشغيلها دون تعديل على IronPython.

http://www.resolversystems.com/documentation/index.php/Ironclad

لذلك للإجابة على أسئلتك:

يجب أن يكون من السهل كتابة تطبيقات IronPython التي تعمل على CPython أيضًا، ولكن ربما أهدف إلى السير في الاتجاه المعاكس:برامج CPython التي تعمل على IronPython أيضاً.بهذه الطريقة، إذا لم ينجح الأمر، فمن المرجح أن يكون خطأ معروفًا وله حل بديل معروف.

ميزة IronPython وآخرون موجود هو أنها توفر تطبيقات بديلة للغة، والتي تكون مفيدة أحيانًا في اكتشاف الأخطاء في CPython.كما أنها توفر طرقًا بديلة لنشر تطبيقات Python الخاصة بك، إذا وجدت نفسك لسبب ما في موقف (مثل Silverlight) حيث يكون توزيع تطبيق CPython مع تطبيقك غير مناسب.

نصائح أخرى

هل ستكون التطبيقات المكتوبة بلغة IronPython/IronRuby محددة جدًا لبيئة .NET، بحيث تصبح خاصة بالمنصة بشكل أساسي؟

يأتي IronRuby حاليًا مزودًا بمعظم مكتبة الياقوت القياسية الأساسية، ويدعم أحجار الياقوت.

وهذا يعني أنه سيدعم تقريبًا أي تطبيق روبي أصلي لا يعتمد على امتدادات لغة C.
الجانب الآخر هو أنه سيكون من الممكن كتابة تطبيقات روبي أصلية في IronRuby لا تعتمد على CLR، وستكون تلك التطبيقات قابلة للنقل إلى التصوير بالرنين المغناطيسي.

ما إذا كان الأشخاص يختارون إنشاء أو استخدام ملحقات لتطبيقاتهم باستخدام CLR أم لا هو نفس السؤال حول ما إذا كان الأشخاص يقومون بإنشاء أو استخدام ملحقات C للتصوير بالرنين المغناطيسي - أحدهما ليس أكثر قابلية للنقل من الآخر.

هناك سؤال جانبي "نظرًا لأن إنشاء امتدادات IronRuby في لغة C# أسهل كثيرًا من إنشاء امتدادات CRuby في لغة C، فهل سينشئ الأشخاص امتدادات حيث يجب عليهم الالتزام بكود روبي الأصلي؟", ، لكن هذا أمر شخصي تمامًا.

على العموم، أعتقد أن أي شيء يجعل إنشاء الإضافات أسهل يعد فوزًا كبيرًا.


إذا لم يستخدموا أيًا من ميزات .NET، فما هي ميزة IronPython/IronRuby مقارنة بنظيراتهم غير .NET؟

  1. أداء:يعد IronRuby أسرع بالفعل في معظم الأحيان من MRI 1.8، وهو ليس بعيدًا عن MRI 1.9، ولن تتحسن الأمور إلا في المستقبل.أعتقد أن بيثون مشابه في هذا الصدد.

  2. تعيين:كما ذكر الأشخاص، يعد تشغيل تطبيق Rails أصلي عبر الأنظمة الأساسية لروبي داخل IIS عرضًا جذابًا لبعض المطورين الذين يستخدمون Windows، لأنه يتيح لهم التكامل بشكل أفضل مع الخوادم/البنية التحتية للإدارة الحالية/إلخ

  3. استقرار:في حين أن MRI 1.9 أفضل بكثير من 1.8، لا أعتقد أن أي شخص يمكن أن يختلف على أن CLR لديه أداة تجميع القمامة ووقت تشغيل أساسي أفضل بكثير من C Ruby.

يتم بناؤها

و IronPython / آيرن روبي للعمل على الجهاز الظاهري .NET، بحيث تكون كما تقول أساسا منصة محددة.

ويبدو أنها متوافقة مع بايثون وروبي طالما كنت لا تستخدم أي من .NET Framework في البرامج الخاصة بك.

إذا قمت بإنشاء مكتبة أو الإطار، يمكن للناس استخدامه في. NET مع رمز. NET بهم. هذا رائع بالنسبة لهم، وبالنسبة لك!

عند تطوير تطبيق، إذا كنت تستخدم مرافق. NET مع التخلي ثم تفقد "عبر platformity"، وهي ليست دائما القضية.

إذا التفاف هذه الاستخدامات مع API الداخلي، يمكنك استبدال تطبيقات .NET وقت لاحق مع نقية بيثون، ملفوفة C (لسي بايثون)، أو جافا (لجايثون) في وقت لاحق.

ووفقا للصفحة مونو، و IronPython متوافق مع تنفيذ مونو من وقت التشغيل .NET، لذلك ينبغي التنفيذية العمل على حد سواء على ويندوز ولينكس.

وأجبت على سؤالك الأول مع الثاني، إذا كنت لا تستخدم أي شيء من صافي فقط يبس الأصلية المقدمة من تنفيذ لغة، هل يمكن تفسير بك * .py أو ملف * .rb مع تنفيذ آخر ويجب أن يعمل.

وقال إن ميزة أن يكون إذا كان لديك متجر صافي كنت عادة ما تأخذ الرعاية من وجود الإطار الصحيح مثبتا على جهاز العميل الخ ... حسنا إذا كنت تريد الثعبان أو رمز روبي، تحتاج الآن إلى دعم آخر "إطار" بحاجة إلى توزيع تثبيت، ورعاية نسخة المشكلة الخ ... لذلك هناك 2 المزايا، وذلك باستخدام صافي قوة إطار داخل لغة أخرى + الحفاظ على التوزيع / صيانة بسيطة بقدر الإمكان.

وسيكون باردا لتشغيل القضبان / بفك تحت IIS بدلا من اباتشي / هجين نوع الحلول

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