News MicroEJ: JavaScript-Unterstützung angekündigt, Python und Kotlin ante portas


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tam H. (Firma: Tamoggemon Holding k.s.) (tamhanna)


Angehängte Dateien:

Lesenswert?

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:

1
import com.microej.js.JsErrorWrapper;
2
import com.microej.js.JsCode;
3
import com.microej.js.JsRuntime;
4
5
...
6
7
JsCode.initJs();
8
JsRuntime.ENGINE.runOneJob();
9
JsRuntime.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:

1
Additionally, Kotlin and Python programming languages development frameworks will soon be released to embrace an even broader engineering workforce. Stay tuned or contact us for more info!

– 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.


: Bearbeitet durch NewsPoster
von Bernd (Gast)


Lesenswert?

Tam H. schrieb:
> Personen mit großem Java-IP haben keine wirkliche Wahl
Da hab ich ja nochmal Glück gehabt, das ich kein Java-IP habe, sondern 
meine Algorithmen z.B. mit Python entwickle und anschließend in das 
jeweilige Zielsystem portiere...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.