سؤال

أنا أبحث عن بديل ECMAScript للعمل كلغة برمجة نصية لمنطق التطبيق المخصص.هناك أشياء تعجبني في ECMA، وخاصة بناء جملة المواصفات الأحدث (مثل AS3).

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

على وجه التحديد، هل هناك لغة لديها:

  • المتغيرات المكتوبة بشكل ثابت (اختياري)
  • الفصول الدراسية، بما في ذلك الأعضاء العامين/الخاصين
  • الميراث، بما في ذلك واجهات
  • الحزم (اختياري)
  • بناء جملة نظيف
  • يجب أن يكون قادرًا على التفاعل كلغة برمجة نصية داخلية لأحد التطبيقات (مثل Javascript للمتصفح)، ولا يمكن أن يكون استدعاء نظام خارجي.

الأشياء التي أفضل الاستغناء عنها

  • ECMA الفوضوي prototype هدف

ما هي اللغات التي تعرفها والتي تناسب هذا الملف الشخصي؟لقد واجهت صعوبة في العثور على لغة برمجة نصية عالية الجودة تم تصميمها للتصميم الجيد الموجه للكائنات.

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

المحلول

في Java، أفضل خيار ECMAScript (Javascript) هو التضمين وحيد القرن.لا أجد أن الميراث القائم على النموذج الأولي قاتل للصفقات، لأنه مع قليل من الانضباط يمكنك جعله يتصرف تقريبًا مثل الميراث القائم على الطبقة.

إذا كنت تريد شيئًا يتفاعل بشكل وثيق مع Java، فانتقل إلى رائع.إذا كنت بحاجة إلى التوافق مع JVM، فاطلع أيضًا على ذلك جيثون (بيثون على JVM)، جروبي (روبي على JVM) و سكالا (لغة ​​وظيفية على JVM).إذا كنت لا تهتم بتوافق Java وJVM، فاطلع على روبي, بايثون, ، و إرلانج. كلوجر هي لهجة Lisp على JVM.

للمضي قدمًا إلى أبعد من ذلك، تتيح لك TCL (لغة أوامر الأداة) تضمين مترجم في كود C/C++، وهناك العديد من مترجمي Lisp وScheme القابلين للتضمين، وما إلى ذلك.

نصائح أخرى

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

أوصي إما بيثون أو روبي.كلاهما ليسا مثل ECMA، لكنني تعلمتهما بعد JavaScript، وكان من السهل التعرف عليهما.بالإضافة إلى ذلك، فهي لغات أكثر قوة، مما يجعلها بديلاً أفضل لاستخدام محرك JavaScript داخل تطبيقك (Rhino for Java).

بايثون

  • يفرض بناء جملة نظيفًا (مثل اللغة الإنجليزية تقريبًا while is not False:)
  • وراثة متعددة (بدون واجهات)
  • يمكن توسيع المترجم باستخدام C/C++ (ربما يستخدم للمحولات الخاصة بك، إذا لزم الأمر)

روبي

  • من المفترض أن يكون بناء الجملة قريبًا من اللغة الإنجليزية (unless الشرط، until حلقة)
  • كل شيء هو كائن
  • يدعم فقط الميراث الفردي، ولكنه يستخدم Mixins لإضافة وظائف

كلاهما

  • الطبقات
  • يمكن تضمينها في تطبيق آخر
  • أعضاء خاصة
  • الحزم

لوا - كل ما تريده وأكثر بحجم 100 كيلو بايت تقريبًا

يرى هذا صفحة للمقارنة بين لغة Lua واللغات الأخرى المذكورة.

يبدو Haxe on Neko هو الشيء الذي تريده بالضبط.لا أعرف مدى إمكانية تضمين nekovm، لكنه مفتوح المصدر لذا يمكنك العبث به. http://haxe.org

ال روبي يمكن أيضًا تضمين المترجم الفوري في برامج C، وقد يعتبره البعض أكثر توجهاً للكائنات من Python.

نحن نستخدم ECMAscript كلغة امتداد لمنتج البرنامج الذي أعمل عليه وهو يعمل بشكل جيد.نظرًا لكونها لغة قياسية (وشائعة)، فمن الجيد أن نكون قادرين على توجيه مستخدمينا إلى الوثائق الوفيرة المتوفرة للغة.لقد قمنا ببناء برنامج التحويل البرمجي ECMAscript الخاص بنا والذي يُترجم إلى كود ثانوي للنظام الأساسي الذي نعمل عليه، ولكن إذا اضطررت إلى القيام بذلك مرة أخرى، فسأفكر جديًا في تضمين محرك Google V8 ECMAscript (في الواقع، سأفكر في إنشاء برنامجنا بالكامل التطبيق عليه).

سأختار شيئًا سائدًا إلى حد ما لتبسيط الأمور.بعد قراءة متطلباتك، أنصحك بذلك بايثون.لا يحتوي حقًا على واجهات بطريقة Java/C#، لكنه لا يحتاج إليها أيضًا.بخلاف ذلك، ينبغي أن يكون مناسبا.

كيو تي سكريبت هو ECMAScript.لم تذكر ما هو الجزء الرئيسي من تطبيقك المكتوب، لكنني أفترض أنه ليس Qt، أو أنك تعرف بالفعل عن QtScript.

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