NectarJS, kompiliert Ihr JS in nativen Code

In diesem Artikel Adrian Thierry erzählt uns von NectarJS, diesem etwas verrückten Projekt, das kürzlich auf KickStarter erschienen ist und es Ihnen ermöglicht, JavaScript-Code nativ für jede Plattform zu kompilieren, in WebAssembly oder sogar in ASM.js.

Hallo Adrien, und danke für dieses Interview, ich schlage vor, dich zuerst vorzustellen:

Hallo Mathieu, ich bin ein französischer Unternehmer, IT-Sicherheitsexperte und begeisterter Verfechter neuer Technologien. Vor fünf Jahren habe ich Seraum gegründet, ein Beratungs- und Schulungsunternehmen für IT-Sicherheit. Ich habe diverse Forschungsprojekte zur Sicherheit von Online-Zahlungen und allgemeiner Zugriffssicherheit durchgeführt. Ich entwickle verschiedene Sicherheitslösungen und teste sie in Echtzeit auf hackmyfortress.com , einer Hacking-Challenge, bei der 30.000 US-Dollar für den erfolgreichen Hack winken .

Können Sie uns erklären, was NectarJS ist?

NectarJS ist ein plattformübergreifender JavaScript-Compiler in SAAS, oder CAAS (Compiler As A Service). Es ermöglicht Ihnen, JavaScript von jeder Plattform auf jede Plattform zu kompilieren. Derzeit ist es möglich, in Windows (32 & 64 Bit), Linux (32, 64 Bit und ARM), Arduino (UNO und Mega) zu kompilieren WebAssembly et ASM.JS. Es ist also möglich, JavaScript von einem Rasbperry PI 3 auf einen Arduino zu kompilieren. Ich spreche von Kompilierung, das erhaltene Ergebnis ist eine ausführbare Binärdatei oder Firmware, die für die Zielplattform spezifisch ist. Sie können auch von Ihrem Android-Telefon nach Windows oder Linux kompilieren. Die Entwicklungsplattform ist kein Hindernis mehr. Innerhalb eines Entwicklerteams muss man sich um eine solche Version der VM oder eine solche Test- oder Kompilierungsumgebung nicht mehr kümmern.

NectarJS in Aktion
Nektar
All das funktioniert bereits und kann mit einem einfachen Browser getestet werden: http://nectar-lang.com

Wie sind Sie auf die Idee zu diesem Projekt gekommen?

Beim Ausführen von Benchmarks entdeckte ich Crystal , mit dem man Code ähnlich wie in Ruby kompilieren kann. Das kompilierte Ergebnis ist bei HTTP-Anfragen 5- bis 10-mal schneller als NodeJS. Ich hatte zwei Möglichkeiten, die Geschwindigkeit zu steigern: meinen NodeJS-Stack auf Crystal umzustellen (was auf Linux beschränkt ist) oder JavaScript zu kompilieren, um die Geschwindigkeit zu verbessern. Ich entschied mich für die zweite Option und erzielte sehr schnell vielversprechende Ergebnisse. Diverse Benchmarks bestätigten meine Entscheidung und motivierten mich, die Entwicklung fortzusetzen. Ich veröffentlichte eine zufällige Nachricht auf Hacker News, die viral ging (137 Punkte und 78 Kommentare).

Dieses Projekt scheint wirklich zu verrückt, um wahr zu sein, kannst du ein bisschen erklären, wie es funktioniert, ohne das ganze Rezept zu nennen?

NectarJS erstellt einen AST (abstrakten Syntaxbaum) und generiert daraus eine Zwischensprache (IL), die dann für jede Plattform kompiliert werden kann. Der NectarJS-Client, der auf Computern installiert ist, die kompilieren möchten, verschlüsselt einfach den Code und sendet ihn zur Kompilierung an die Server.

Was sind die aktuellen Projektbeschränkungen, kann ich meine Node/Express-Anwendung kompilieren?

Noch nicht, wir stehen am Anfang der Entwicklung und müssen noch viele Bibliotheken codieren oder transkribieren. Wir können bereits einige Teile der FS- (FileSystem) oder Process-Bibliothek von NodeJS kompilieren, aber es ist noch ein langer Weg. Schließlich wird es keine Einschränkungen geben. Wir beabsichtigen, JavaScript vollständig nach dem ES5-Standard zu kompilieren, dann nach ES6 und ES7. Wir haben auch den Algorithmus, mit dem wir „eval()“ oder „this.“ kompilieren können.

Wie würde ich meine nativ kompilierte Anwendung debuggen?

Es gibt mehrere Möglichkeiten, Ihre Anwendung zu debuggen. Der Browser kann über WebAssembly eine einfache Möglichkeit sein, die Funktionsweise seines Codes mit alltäglichen Tools zu analysieren. Wir planen auch, alle Tracing- und Debugging-Tools in NectarJS zu integrieren, was das Kompilieren im Debug-Modus ermöglichen und Untersuchungen erleichtern wird. Wir wollen die Entwicklung wirklich demokratisieren und werden alles tun, um sie so einfach und effizient wie möglich zu gestalten.

Glaubst du, dass dein Projekt irgendwann native Sprachen für mobile Apps ersetzen könnte?

Bei breiter Akzeptanz könnte es viele Bereiche ersetzen: die mobile Entwicklung, aber auch die IoT- Entwicklung , die serverseitige Entwicklung und die Webentwicklung. Mit NectarJS wird JavaScript universell und effizient. Jeder kann mit jeder beliebigen Technologie programmieren; Rechenleistung spielt keine Rolle, da die NectarJS-Server die Arbeit erledigen. NectarJS reduziert zudem den Energieverbrauch und macht das Computing somit umweltfreundlicher.

Es ist auch möglich, Menschen mit begrenzten Mitteln das Programmieren zu ermöglichen: Mit einem einfachen Raspberry können Sie mit NectarJS für jede Art von Plattform entwickeln.

NectarJS ermöglicht es einem JavaScript-Entwickler, so effizient zu sein wie ein Low-Level-Entwickler. Einige Benchmarks zeigen, dass einige mathematische Operationen mit kompiliert wurden NectarJS ist schneller als C.
NectarJS kann auch in Umgebungen eingesetzt werden, in denen Geschwindigkeit ein entscheidender Erfolgsfaktor ist (algorithmischer Handel usw.).

War das Projekt bereits sehr erfolgreich?

Wir sind täglich in Kontakt mit Unternehmen, die NectarJS einsetzen möchten. Der Start einer Community von Grund auf ist sehr komplex, und die Crowdfunding-Kampagne auf KickStarter zeigt mir die Kommunikationsprobleme und den Widerstand der Entwickler gegenüber Änderungen. JavaScript ist für viele keine Programmiersprache, sondern eine Skriptsprache. Paypal und andere große Gruppen verwenden jedoch täglich JavaScript mit NodeJS. Ich stehe in Kontakt mit mehreren namhaften Entwicklern der JavaScript-Community (z. B. NativeScript), die das Projekt unterstützen. Viele Leute denken, dass es eine Fälschung ist, was eine Schande ist.
NectarJS sorgte zum Beispiel in Japan für Aufsehen und wurde in sehr kurzer Zeit auf vielen Nachrichtenseiten verbreitet. Ich versuche jetzt, dasselbe in den Vereinigten Staaten und in Europa zu tun.

Wenn das KickStarter-Projekt funktioniert, was wären die nächsten Schritte?

Beenden Sie die Kompilierung des ES5-JavaScript-Standards und fahren Sie dann mit NodeJS fort. Gleichzeitig werden wir die fehlenden Plattformen sehr schnell in die Zusammenstellung aufnehmen (Mac Os, diverse Arduinos und Entwicklungsplattformen). Wir werden auch einen Marktplatz für Entwickler einrichten, um Code oder Bibliotheken zu spenden oder zu verkaufen. Ziel der Kampagne ist es, der Entwicklergemeinschaft die Möglichkeit zu geben, die nächsten Verbesserungen von NectarJS auszuwählen.
Für den Fall, dass die Kampagne scheitert, haben wir private Investoren als Backup, aber die Entwicklungsentscheidungen werden vorrangig für ihre Bedürfnisse getroffen.

Das letzte wort

An alle, die JavaScript lieben oder sich für Technologie, Robotik oder KI begeistern, zögern Sie nicht, die Informationen und die Crowdfunding-Kampagne zu verbreiten: http://kickstarter.com/projects/adrien-thierry/nectarjs-compile-javascript-for-and-from-any-devic
Vielen Dank für dieses Interview Adrien und viel Glück mit deinem Projekt.
Matthew Breton, CTO von JS-Republic.
[actionbox color=“default“ title=““ description=“JS-REPUBLIC ist ein auf JavaScript-Entwicklung spezialisiertes Dienstleistungsunternehmen. Wir sind ein anerkanntes Ausbildungszentrum. Alle unsere technischen Schulungen finden Sie auf unserer Partnerseite für Schulungen“ btn_label=“Unser Training“ btn_link=“http://training.ux-republic.com“ btn_color=“primary“ btn_size=“big“ btn_icon=“star“ btn_external ="1"]