NectarJS, compileert uw JS in native code

In dit artikel Adrian Thierry vertelt ons over NectarJS, met dit ietwat gekke project dat onlangs op KickStarter verscheen, kun je JavaScript-code native compileren naar elk platform, in WebAssembly of zelfs in ASM.js.

Hallo Adrien, en bedankt voor dit interview, ik stel voor om je eerst voor te stellen:

Hallo Mathieu, ik ben een Franse ondernemer, IT-beveiligingsexpert en gepassioneerd door nieuwe technologieën. Vijf jaar geleden heb ik Seraum opgericht, een bedrijf voor IT-beveiligingsadvies en -training. Ik heb diverse onderzoeksprojecten uitgevoerd naar online betalingsbeveiliging en toegangsbeveiliging in het algemeen. Ik ontwikkel verschillende beveiligingsoplossingen en test deze in realtime op hackmyfortress.com , een hackuitdaging waarbij de winnaar $30.000 wint.

Kun je ons uitleggen wat NectarJS is?

NectarJS is een cross-platform JavaScript-compiler in SAAS, of CAAS (Compiler As A Service). Hiermee kunt u JavaScript vanaf elk platform naar elk platform compileren. Momenteel is het mogelijk om te compileren naar Windows (32 & 64 bits), Linux (32, 64 bits en ARM), Arduino (UNO en Mega), in WebAssembly et ASM.JS. Het is dus mogelijk om JavaScript van een Rasbberry PI 3 naar een Arduino te compileren. Ik heb het over compilatie, het verkregen resultaat is een uitvoerbaar binair bestand of firmware die specifiek is voor het beoogde platform. U kunt ook vanaf uw Android-telefoon compileren naar Windows of Linux. Het ontwikkelplatform is niet langer een obstakel. Binnen een team van developers hoef je je geen zorgen meer te maken over zo'n versie van VM of zo'n test- of compilatieomgeving.

NectarJS in actie
nectarjen
Dit alles werkt al en kan worden getest met een eenvoudige browser: http://nectar-lang.com

Hoe kwam je op het idee voor dit project?

Tijdens het uitvoeren van benchmarks ontdekte ik Crystal , waarmee je code kunt compileren die sterk lijkt op Ruby. Het gecompileerde resultaat is 5 tot 10 keer sneller dan NodeJS bij HTTP-verzoeken. Ik had twee opties om snelheid te winnen: mijn NodeJS-stack migreren naar Crystal (wat beperkt is tot Linux), of JavaScript compileren om de snelheid te verbeteren. Ik koos voor de tweede optie en behaalde al snel veelbelovende resultaten. Diverse benchmarks bevestigden mijn keuze en motiveerden me om door te gaan met de ontwikkeling. Ik plaatste een willekeurig nieuwsbericht op Hacker News dat viraal ging (137 punten en 78 reacties).

Dit project lijkt echt te gek om waar te zijn, kun je een beetje uitleggen hoe het werkt zonder het hele recept te geven?

NectarJS maakt een AST (abstracte syntaxisboom) en genereert daaruit een tussentaal (IL) die vervolgens naar elk platform kan worden gecompileerd. De NectarJS-client, geïnstalleerd op machines die willen compileren, versleutelt de code eenvoudig en stuurt deze naar de servers voor compilatie.

Wat zijn de huidige projectbeperkingen, kan ik mijn Node/Express-applicatie compileren?

Nog niet, we staan ​​aan het begin van de ontwikkeling en we hebben nog veel bibliotheken om te coderen of te transcriberen. We kunnen al enkele stukjes van de FS (FileSystem) of Process bibliotheek van NodeJS compileren, maar er is nog een lange weg te gaan. Uiteindelijk zullen er geen beperkingen zijn. We zijn van plan om JavaScript volledig te compileren naar de ES5-standaard en vervolgens naar ES6 en ES7. We hebben ook het algoritme waarmee we "eval()" of "this." kunnen compileren.

Hoe zou ik mijn native gecompileerde applicatie debuggen?

Er zijn verschillende manieren om fouten in uw toepassing op te sporen. De browser, via WebAssembly, kan een eenvoudige manier zijn om de werking van zijn code te analyseren met alledaagse hulpmiddelen. We zijn ook van plan om alle tracerings- en debuggingtools in NectarJS te integreren, die het compileren in debug-modus mogelijk maken en onderzoeken vergemakkelijken. We willen ontwikkeling echt democratiseren en zullen er alles aan doen om het zo eenvoudig en efficiënt mogelijk te maken.

Denkt u dat uw project uiteindelijk de native mobiele app-talen kan vervangen?

Als het breed wordt toegepast, kan het veel vervangen: mobiele ontwikkeling, maar ook IoT- ontwikkeling , server-side ontwikkeling, webontwikkeling, enzovoort. Met NectarJS wordt JavaScript universeel en efficiënt. Iedereen kan met alles programmeren; rekenkracht is irrelevant, omdat de NectarJS-servers het werk doen. NectarJS vermindert bovendien het energieverbruik, waardoor computergebruik milieuvriendelijker wordt.

Het is ook mogelijk om mensen met beperkte middelen te laten coderen: een simpele Raspberry stelt je in staat om met NectarJS voor elk type platform te ontwikkelen.

Met NectarJS kan een JavaScript-ontwikkelaar net zo efficiënt zijn als een ontwikkelaar op laag niveau. Sommige benchmarks laten zien dat sommige wiskundige bewerkingen gecompileerd met NectarJS is sneller dan C.
NectarJS kan ook worden gebruikt in omgevingen waar snelheid een belangrijke succesfactor is (algoritmische handel enz.).

Is het project al zeer succesvol geweest?

We hebben contact met bedrijven die NectarJS elke dag willen gebruiken. Een community helemaal opnieuw beginnen is erg complex en de crowdfunding-campagne op KickStarter laat me de communicatieproblemen en de weerstand van ontwikkelaars tegen verandering zien. Voor velen is JavaScript geen programmeertaal maar een scripttaal. Paypal en andere grote groepen gebruiken echter dagelijks JavaScript met NodeJS. Ik heb contact met verschillende bekende ontwikkelaars in de JavaScript-gemeenschap (bijvoorbeeld NativeScript), die het project ondersteunen. Veel mensen denken dat het nep is, wat jammer is.
NectarJS maakte bijvoorbeeld furore in Japan en werd in korte tijd op veel nieuwssites uitgezonden. Ik ben nu op zoek om hetzelfde te doen in de Verenigde Staten en in Europa.

Als het KickStarter-project werkt, wat zijn dan de volgende stappen?

Voltooi het compileren van de ES5 JavaScript-standaard en ga dan verder met NodeJS. Tegelijkertijd zullen we heel snel de ontbrekende platforms aan de compilatie toevoegen (Mac Os, verschillende Arduino's en ontwikkelplatforms). We zullen ook een marktplaats opzetten waar ontwikkelaars code of bibliotheken kunnen doneren of verkopen. Het doel van de campagne is om de gemeenschap van ontwikkelaars de volgende verbeteringen van NectarJS te laten kiezen.
In het geval dat de campagne mislukt, hebben we particuliere investeerders als back-up, maar de ontwikkelingskeuzes zullen met voorrang worden gemaakt op basis van hun behoeften.

Het laatste woord?

Aan iedereen die van JavaScript houdt of een passie heeft voor technologie, robotica of AI, aarzel niet om de informatie en de crowdfunding-campagne te verspreiden: http://kickstarter.com/projects/adrien-thierry/nectarjs-compile-javascript-for-and-from-any-devic
Heel erg bedankt voor dit Interview Adrien en veel succes met je project.
Mattheüs Breton, CTO van JS-Republic.
[actionbox color=”default” title=”” description=”JS-REPUBLIC is een dienstverlenend bedrijf dat gespecialiseerd is in JavaScript-ontwikkeling. Wij zijn een erkend opleidingscentrum. Vind al onze technische trainingen op onze partnersite gewijd aan Training” btn_label=”Onze training” btn_link=”http://training.ux-republic.com” btn_color=”primary” btn_size=”big” btn_icon=”star” btn_external =”1″]