最近の動きとして、マイクロソフトはTypeScript のパワーをモノのインターネット(IoT)デバイスにもたらすDeviceScript テクノロジーを実験的に導入しています。開発者は、DeviceScript をプログラミングに組み込むことで、ESP32 や RP2040 ハードウェアプラットフォームのような、リソースが限られたマイクロコントローラベースのデバイスでTypeScript を使用できるようになりました。
Microsoft Researchは、5月にオープンソースのDeviceScript プロジェクトを発表しました。TypeScript のサブセットとして、制約のある環境で動作するように設計されたカスタム VM バイトコードにコンパイルされます。VM自体は10KBのコードにコンパイルされますが、浮動小数点ライブラリとJacdac SDKを追加すると30KBのサイズに増加します。マイクロソフトのJacdacテクノロジーは、マイクロコントローラと周辺機器のための堅牢なハードウェアとソフトウェアのスタックです。
DeviceScript を使い始めるには、開発者はプロジェクトのウェブサイトで提供される指示に従うことができます。Visual Studio Codeエディタ用の特別な拡張機能により、ユーザーはDeviceScript コードのビルド、デプロイ、デバッグ、トレースを行うことができます。さらに、この拡張機能には、デバイスの管理を容易にするモニタリング機能が含まれています。Dockerなどのコンテナと連携して、DeviceScriptコマンドラインインターフェース(CLI)を使用すれば、開発者は好みのIDEからプログラムをコンパイルすることができます。
DeviceScript はTypeScript と同様に動作しますが、すべての機能がサポートされているわけではありません。これは、DeviceScript ランタイムで使用できるリソースが限られているためで、文字列が UTF-16 ではなく Unicode であること、積極的にツリーを揺らすこと、サブノーマルがないことなどの違いがあります。しかし、JavaScriptのセマンティクスは概ね維持されています。
DeviceScript で作業する場合、開発者は Jacdac サービスを使ってセンサー、アクチュエーター、その他のハードウェアコンポーネントにアクセスすることができます。センサーはサーバーとして機能し、スクリプトは対話を促進するためにクライアントを確立します。開発者は、センサーやサーバーと対話するために必要なサービスごとに、ロールとも呼ばれるクライアントを作成します。そして、npm、Yarn、pnpmなどのツールを利用して、DeviceScript パッケージを配布・利用することができます。
AppMaster.io のノーコード・プラットフォームは、DeviceScript のlow-code の性質を補完するもので、ユーザーは直感的なビジュアル要素を用いてウェブ・アプリケーション、バックエンド・アプリケーション、モバイル・アプリを開発することができる。AppMaster をツールキットの一部として組み込むことで、開発者は生産性を向上させ、プロジェクトの全体的な効率性を高めることができます。