جافا سكريبت .NET
JScript .NET هي لغة برمجة إطار عمل .NET طورتها شركة مايكروسوفت كبرنامج احتكاري .
يمكن تلخيص الاختلافات الرئيسية بين JScript و JScript .NET على النحو التالي:
أولًا، JScript هي لغة برمجة نصية ، وبالتالي، يمكن تنفيذ البرامج (أو بالأحرى، النصوص البرمجية) دون الحاجة إلى تجميع الكود مسبقًا. يختلف الأمر مع مُجمِّع واجهة سطر الأوامر لـ JScript .NET، حيث يعتمد هذا الإصدار من الجيل التالي على بيئة تشغيل اللغة العامة (CLR) لـ .NET للتنفيذ، مما يتطلب تجميع الكود إلى لغة وسيطة عامة (CIL)، والتي كانت تُسمى سابقًا لغة مايكروسوفت الوسيطة (MSIL)، قبل تشغيله. مع ذلك، لا يزال JScript .NET يدعم تفسير الكود المصدري أثناء التشغيل (على سبيل المثال، عبر Functionالمُنشئ أو evalالدالة)، ويمكن للتطبيقات المُخصصة التي تستضيف مُحرك JScript .NET الوصول إلى المُفسِّر عبر واجهات VSA.
ثانيًا، تتمتع لغة JScript بأساس متين في تقنيات ActiveX ونموذج كائنات المكونات ( COM) من مايكروسوفت ، وتعتمد بشكل أساسي على مكونات ActiveX لتوفير معظم وظائفها (بما في ذلك الوصول إلى قواعد البيانات عبر كائنات بيانات ActiveX (ADO)، ومعالجة الملفات، وما إلى ذلك)، بينما تستخدم JScript .NET إطار عمل .NET لتوفير وظائف مكافئة. ولضمان التوافق مع الإصدارات السابقة (أو في حال عدم وجود مكتبة مكافئة في .NET)، توفر JScript .NET وصولًا كاملًا إلى كائنات ActiveX عبر .NET و COM Interop باستخدام كلٍ من مُنشئ ActiveXObject والأساليب القياسية لفئة .NET Type.
على الرغم من الانتشار الواسع لإطار عمل .NET ولغات البرمجة مثل C# و Visual Basic (.NET) ، إلا أن JScript .NET لم يحظَ باهتمام يُذكر من الإعلام والمطورين. فهو غير مدعوم في أداة التطوير الرئيسية من مايكروسوفت، Visual Studio .NET . مع ذلك، يدعم ASP.NET لغة JScript .NET.
الاختلافات اللغوية
فيما يلي أمثلة رئيسية على الاختلافات اللغوية بين JScript .NET ولغات .NET الأخرى، بما في ذلك المقارنات.
الاختلافات مع لغة C#
- لا يتطلب JScript .NET نقطة دخول (
main()دالة ) يجب على نظام التشغيل استدعاؤها مباشرة عند تنفيذ تطبيق JScript .NET، وبالتالي، يمكن أن يعتمد تدفق التحكم في برنامج JScript .NET على التعليمات البرمجية العامة. - يمكن أن يكون تعلم JScript .NET أسهل بسبب نظام فحص أنواع البيانات المتساهل للغاية، حيث أن الاتفاقية الشائعة المتمثلة في تعريف الأنواع بشكل صريح غير ضرورية.
- لا يتطلب JScript .NET مراجع صريحة لمكتبة الفئات الأساسية لإطار عمل .NET، حيث أن بعض الوظائف الموجودة في الإصدارات السابقة من JScript موجودة في JScript .NET (على سبيل المثال، وظائف لإيجاد ظل زاوية لمثلث قائم الزاوية ).
- ترتبط لغة JScript .NET ارتباطًا وثيقًا ببنية لغة C ، وبالتالي يسهل تعلمها لمطوري C# أو Java أو C++ .
- على الرغم من إمكانية استخدام JScript .NET لإنشاء تطبيقات Windows Forms، إلا أنه قد يواجه بعض المشاكل، حيث لا يمكن إنشاء المندوبين إلا باستخدام JScript .NET. وبالتالي، يصعب محاكاة الأحداث المخصصة في JScript .NET.
الاختلافات مع لغة C++
- لا يحتاج JScript .NET إلى دالة main() .
- لا يتطلب JScript .NET تعريفًا صريحًا لأنواع المتغيرات. (في لغة C++ ، يمكن مقارنة استخدام القوالب والأنواع العامة بهذا، مع محاكاة تقريبية باستخدام تخصيص القوالب، وما إلى ذلك).
- لا يتطلب JScript .NET تحويلات صريحة لأنواع المتغيرات المستخدمة في البرنامج. يمكن تحويل الكود المستخدم لاسترجاع سلسلة من الأحرف، ولكنه يُستخدم فقط للأعداد الصحيحة، ضمنيًا؛ ويمكن القيام بالعكس دون خطأ أثناء الترجمة ، ولكن هناك احتمال لفقدان الدقة أو البيانات.
مثال:
استيراد النظام ؛Console.WriteLine ( "مرحباً، ما اسمك؟" ) ; Console.WriteLine ( " اكتب اسمك: " ) ;var name : String = Console . ReadLine ();Console.WriteLine ( $ "Hello, {name} " ) ;الاختلافات مع جافا
- تتشابه بنية لغة جافا سكريبت .NET وقواعدها اللغوية مع لغة جافا من حيث أن كلتيهما مشتقتان من لغة C. كانت جافا سكريبت في الأصل تطبيق مايكروسوفت لـ ECMAScript ، المعروفة باسم جافا سكريبت ، على الرغم من أنها لا ترتبط بجافا. لذا، سيجد مستخدمو جافا واللغات الأخرى المشتقة من C أن تعلم جافا سكريبت أسهل.
- تتيح لغة جافا سكريبت دوت نت للمطورين استخدام متغيرات غير محددة النوع ، ويمكنها أحيانًا استنتاج نوعها من استخدامها لتحسين الكود المُترجم. في المقابل، تتطلب جافا تحديد نوع جميع المتغيرات، مع أنها تدعم أيضًا استنتاج النوع.
- يمكن لـ JScript .NET إضافة خصائص وأساليب إلى الكائنات في وقت التشغيل ، بينما تلتزم كائنات Java دائمًا بالواجهة المعلنة لها.
- يدعم JScript .NET المتغيرات العامة ، وهو ما لا يدعمه Java.
الاختلافات مع الإصدارات القديمة من جافا سكريبت
- يسمح JScript .NET بتعريف المتغيرات والوظائف بمعلومات النوع (على سبيل المثال،
var x: String;)، بينما لا يمكن تعريف معلومات النوع لمتغيرات ووظائف JScript (على سبيل المثال،var x;). - لا تُفسَّر نصوص JScript .NET، بل تُنفَّذ بشكل مستقل. عند التنفيذ، يستدعي تطبيق JScript .NET بيئة CLR ، التي بدورها تُنفِّذ تعليمات CIL دون استخدام مُفسِّر.
- يمكن تشغيل JScript .NET دون الحاجة إلى متصفح أو محرك برمجة نصية آخر ، حيث يستطيع المُصرّف إنشاء ملفات تنفيذية وتجميعات مستقلة. مع ذلك، لا يزال تشغيل هذه الملفات يتطلب تثبيت إطار عمل .NET .
- يوفر JScript .NET إمكانية الوصول إلى مكتبة الفئات الأساسية (BCL) الخاصة بإطار عمل .NET، مما يوفر وظائف أكثر بكثير.
- تتوفر لغة JScript .NET كلغة برمجة نصية خاصة بتقنية ASP.NET فقط ، وهي التقنية المستخدمة لإنشاء صفحات الويب. وبالتالي، تؤدي JScript .NET دورًا مشابهًا للغة PHP وغيرها من لغات البرمجة النصية من جانب الخادم . مع ذلك، لا يزال متصفح إنترنت إكسبلورر يستخدم محرك JScript القديم فقط، لذا لا يمكن استخدام JScript .NET لكتابة نصوص برمجية لصفحات الويب (أو تطبيقات HTML ). من هذا المنطلق، تُعد JScript أكثر تنوعًا من JScript .NET.
انظر أيضاً
- جافا سكريبت++
- تايب سكريبت
- جافا سكريبت OSA – لغة برمجة نصية على مستوى النظام لأجهزة أبل ماكنتوش
- جافا سكريبت
- أكشن سكريبت
- سي شارب
ملحوظات
مراجع
- البدء باستخدام JScript .NET
- تقديم JScript .NET
- دروس تعليمية حول JScript.NET ونماذج التعلم
- لغات برمجة .NET
- محركات لغة جافا سكريبت
- عائلة لغات البرمجة جافا سكريبت
- لغات البرمجة القائمة على الكائنات
