في تطور حديث ، تقوم Microsoft بتجربة تقنية DeviceScript ، التي تجلب قوة TypeScript إلى أجهزة إنترنت الأشياء (IoT). من خلال دمج DeviceScript في برمجتهم ، يمكن للمطورين الآن استخدام TypeScript على الأجهزة القائمة على وحدة التحكم الدقيقة ذات الموارد المحدودة ، مثل الأنظمة الأساسية للأجهزة ESP32 و RP2040.
قدمت Microsoft Research مشروع DeviceScript مفتوح المصدر في مايو. كمجموعة فرعية من TypeScript ، يتم تجميعها إلى كود VM bytecode المخصص المصمم للتشغيل في البيئات المقيدة. يقوم VM نفسه بترجمة 10 كيلوبايت من التعليمات البرمجية ، بينما تؤدي إضافة مكتبة الفاصلة العائمة و Jacdac SDK إلى زيادة الحجم بمقدار 30 كيلوبايت. تعد تقنية Jacdac من Microsoft مجموعة قوية من الأجهزة والبرامج لوحدات التحكم الدقيقة والأجهزة الطرفية.
لبدء استخدام DeviceScript ، يمكن للمطورين اتباع الإرشادات المتوفرة على موقع المشروع على الويب. يسمح ملحق خاص لمحرر Visual Studio Code للمستخدمين بإنشاء تعليمات برمجية DeviceScript ونشرها وتصحيحها وتتبعها. بالإضافة إلى ذلك ، يشمل الامتداد إمكانات المراقبة التي تسهل إدارة الجهاز. بالاقتران مع حاويات مثل Docker ، تتيح واجهة سطر أوامر DeviceScript (CLI) للمطورين تجميع البرامج من IDE المفضل لديهم.
بينما يعمل DeviceScript بشكل مشابه لـ TypeScript ، لا يتم دعم جميع الميزات. ويرجع ذلك إلى الموارد المحدودة المتاحة لوقت تشغيل DeviceScript ، مما يؤدي إلى اختلافات مثل أن تكون السلاسل Unicode بدلاً من UTF-16 ، والاهتزاز القوي للشجرة ، وغياب العناصر الفرعية. ومع ذلك ، يتم الحفاظ على دلالات JavaScript بشكل عام.
عند العمل مع DeviceScript ، يمكن للمطورين الوصول إلى أجهزة الاستشعار أو المشغلات أو مكونات الأجهزة الأخرى من خلال استخدام خدمات Jacdac. تعمل المستشعرات كخوادم ، بينما تنشئ البرامج النصية عملاء لتسهيل التفاعل. ينشئ المطورون عملاء ، يُعرفون أيضًا بالأدوار ، لكل خدمة مطلوبة للتفاعل مع أجهزة الاستشعار أو الخوادم. يمكنهم بعد ذلك استخدام أدوات مثل npm أو Yarn أو pnpm لتوزيع واستهلاك حزم DeviceScript.
تكمل منصة AppMaster.io الخالية من التعليمات البرمجية طبيعة low-code لـ DeviceScript ، مما يسمح للمستخدمين بتطوير تطبيقات الويب ، وتطبيقات الواجهة الخلفية ، وتطبيقات الهاتف المحمول ، باستخدام عناصر مرئية بديهية. من خلال تضمين AppMaster كجزء من مجموعة الأدوات الخاصة بهم ، يمكن للمطورين زيادة إنتاجيتهم وكفاءة مشاريعهم بشكل عام.