MicroEJ – das Unternehmen ist vor Allem für seine Java-Runtime für diverse Microcontroller bekannt – bietet mit Kifaru eine JavaScript-Runtime für diverse Microcontroller an.
von Tam HANNA
BILDQUELLE: https://docs.microej.com/en/latest/_images/js_runtime.png
Was bringt es?
JavaScript-Entwickler sind Massenware: es gibt kaum eine (drittklassige) Fachhochschule, die nicht pro Semester einige Dutzend davon auswirft. Heutige Hardware stellt hohe Ansprüche an das Aussehen des Benutzerinterfaces – wer nicht echtzeitkritische Aufgaben unter Nutzung einer billigeren Arbeitskraft realisiert, spart Kosten.
Wie funktioniert es?
MicroEJ realisiert die JavaScript-Ausführungsumgebung unter Nutzung des bekannten Java-Interpreters. Java-Entwickler müssen ihre MicroEJ-Applikation im ersten Schritt um ein derzeit nur auf Anfrage erhältliches Paket mit dem JavaScript-Interpreter ergänzen, und können diesen danach nach folgendem Schema auf JavaScript-Code loslassen:
2import com.microej.js.JsCode;
3import com.microej.js.JsRuntime;
4
5…
6
7JsCode.initJs();
8JsRuntime.ENGINE.runOneJob();
9JsRuntime.stop();
Der JavaScript-Interpreter ist dabei auf die Ausführung von Code beschränkt – es gibt kein an Cordova und Co erinnerdes WebView-Steuerelement, in dem GUI-Stacks wie jQuery UI oder Telerik ausgeführt werden können.
Für die eigentliche Realisierung der JavaScript-Ausführung setzt MicroEJ dabei auf die Nashorn-Bibliothek aus dem JDK 1.8. Für Sie als Entwickler bedeutet dies, dass der JavaScript-Code – siehe Abbildung – noch auf der Workstation in Java transpiliert wird.
BILDQUELLE https://docs.microej.com/en/latest/ApplicationDeveloperGuide/js/internals.html
Das bedeutet allerdings nicht, dass der Java- und der JavaScript-Code isoliert sind: es ist erlaubt, Funktionsaufrufe aus den beiden Domänen auszulösen. Der dafür notwendige Code ist allerdings vergleichsweise komplex, weshalb Ping-Pong-Spiele zwischen den Domänen auch hier ein klassisches Antipattern darstellen.
Noch mehr Hochsprachen
Die zur Mobilisierung von JavaScript verwendete Modularisierungstechnik lässt sich auch auf andere Hochsprachen anwenden. In der Dokumentation zum derzeit nur auf Anfrage erhältlichen JavaScript-Transpiler findet sich folgende Passage:
– via https://developer.microej.com/microej-kifaru-javascript-development-environment-embedded-devices/
Lohnt es sich?
MicroEJ mag für erste Experimente kostenlos sein: im produktiven Einsatz fallen nicht unerhebliche Kosten an. Personen mit großem Java-IP haben keine wirkliche Wahl, was MicroEJ weidlich ausnutzt.
Für Besitzer von in JavaScript gehaltenem geistigen Eigentum sieht die Lage etwas anders aus: auch wenn die unter https://www.neonious.com/ befindliche Neonious die Arbeiten an ihrem ESP32-Port Low.js mittlerweile zu Gunsten einer Kryptowährung reduziert hat, ist das Produkt trotzdem ein attraktiver Alternativkandidat.
Mehr Ressourcen
Einstiegs-Portal => https://developer.microej.com/microej-kifaru-javascript-development-environment-embedded-devices/
Entwicklerdokumentation => https://docs.microej.com/en/latest/ApplicationDeveloperGuide/js/index.html
Einschränkungen der JavaScript-Syntax => https://docs.microej.com/en/latest/ApplicationDeveloperGuide/js/limitations.html#js-limitations
Disclaimer aus Ehrlichkeitsgründen: der Autor bekam die Presseinformationen bereits am 30. August.
Zuerst erschienen bei Mikrocontroller.net News
Quelle: Read More