REGISTER | LOGIN
Breaking News
News & Analysis

Unleash The Power of JavaScript For IoT

Marvell's KinomaJS goes open source
3/3/2015 08:50 AM EST
5 comments
NO RATINGS
View Comments: Newest First | Oldest First | Threaded View
DMcCunney
User Rank
Author
Re: The JS engine is the point of interest
DMcCunney   3/4/2015 11:44:40 PM
NO RATINGS
@phoddie: I wrote a Tech Note providing more details on the full KinomaJS stack. It includes some additional technical details on the XS virtual machine.

Thank you.  I'm poring over it as we speak.  I'm curious about anything that can implement the full current ECMAScript spec and still be a candidate for embedding when hardware is the scarce resource and optimization must concentrate on size.

 

phoddie
User Rank
Author
Re: details miissing
phoddie   3/4/2015 6:36:10 PM
NO RATINGS
alex_m1 --

We decided not to post the kinds of benchmarks you note because they tend not to be so meaningful. First, they are easily gamed by tuning the tests and the implenentaiton. That's the reason behind some pretty esoteric optimzations in browser based JavaScript engines. Second, details depend on so many varialbles that it is difficult to give meaningful numbers - CPU speed, memory size, caches, compiler, code configuration, etc. We published the code so anyone can give it a try and reach their own conclusions. 

As for Tessel and Espruino, they are excellent proof that JavaScript is taking root in the embedded space. The Tessel team is great and they've done some very nice work. There's room for more than one JavaScript engine in the browser space. We all benefit because there are. There is surely room for more than one in the embedded space too.

We're happy to try to help with any questions about building or using our KinomaJS code. My engineering team responds to questions posted at http://forum.kinoma.com.

-- Peter

 

phoddie
User Rank
Author
Re: The JS engine is the point of interest
phoddie   3/4/2015 6:27:43 PM
NO RATINGS
DMcCunney --

Our XS JavaScript engine is surely one of the most broadly relevant parts of code in our open source release. We've used it to build full mobile apps (check out Kinoma Connect in the App Store). The implementation is full ECMAScript 5th Edition. Like every other JavaScript, there are some deviations from the specificaiton (e.g. bugs), though they are around edges. We regualrly run Javascript code from the web using XS without modificaiton.

I wrote a Tech Note providing more details on the full KinomaJS stack. It includes some additional technical details on the XS virtual machine. Check it out:

   http://kinoma.com/develop/docs/technotes/kinomaJS-opensource.php

Of course, the code is there for you to read, build, and run.

-- Peter

alex_m1
User Rank
Author
details miissing
alex_m1   3/3/2015 3:50:35 PM
NO RATINGS
It's definetly a very interesting projects ,but there's little concrete details(here or on their site) about the things that interest embedded developers: cost, memory, performance, power, size , real-time, etc.

Also how does this compete with other JS efforts like espruino and tessel ?

 

DMcCunney
User Rank
Author
The JS engine is the point of interest
DMcCunney   3/3/2015 2:05:35 PM
NO RATINGS
JavaScript has advanced a great deal since the days when the object was to make a monkey dance on mouseover.  A Microsoft developer involved in implementing JavaScript support in IE's Trident rendering engine back when talked about scripts generally being one liners. with ten line scripts unusual and 100 line scripts unheard of.

That's no longer the case, and because JS is a "batteries not included" language, you're likely resort to one or more libraries to provide functions you need instead of trying to implement them yourself.

On the browser side, the JavaScript engine that runs the code has gotten increasingly large and complex as JS used has skyrocketed.  The Gecko rendering engine used by Mozilla products like Firefox is an example.  The part of Gecko responsible for JS is the IonMonkey engine.  IonMonkey uses JIT techniques  to compile JS to native machine code for execution instead of simply interpreting.  (And JaegerMonkey, the prior version, also did that, but in some cases it was faster to simply interpret instead of compiling, and JaegerMonkey was failing to handle those cases correctly.)  In Mozilla based products, the actual look and feel of the product is provided by XUL, CSS, and JavaScript, and the browser is simply one more thing Gecko renders, with JS actually performing the actions when you click on a menu or icon.  No surprise making JS run as fast as possible is a design goal.  (IIRC, the V8 engine used by Google Chrome behaves similarly to IonMonkey, compiling to native code where fastest.)

The bit that stands out for me is that Kinoma has implemented a JS engine Marvell thinks is a better fit for embedding in IoT devices, where you can't assume gobs of RAM, space to install large apps, and multi-ghz processors to run code.  I'll be fascinated to see what Kinoma did that they think suitable for embedding in an IoT device, and what limitations, if any, are imposed on JS in consequence.

 

 

 

Most Recent Comments
resistion
 
rick merritt
 
traneus
 
ggman02
 
Max The Magnificent
 
Max The Magnificent
 
Max The Magnificent
 
VicVat
 
tb100

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)
Like Us on Facebook
EE Times on Twitter
EE Times Twitter Feed