<story><title>A virtual machine for microcontrollers</title><url>https://blog.toit.io/why-doesnt-v8-fit-on-my-microcontroller-71dc6e2d8f5c</url></story><parent_chain></parent_chain><comment><author>adunk</author><text>I have been in the embedded domain for many years. I really like the approach taken by the team here. Particularly since this team is really well-versed in developing virtual machines and programming languages. But I am very much biased in their favor.&lt;p&gt;Embedded development is tricky, and anything that can help improve the productivity is useful.&lt;p&gt;The problem is that there have been many, many attempts at doing this exact same thing over the years. And they all have to fight the same fight: to get some serious traction for their particular approach.&lt;p&gt;Back in the 00&amp;#x27;s, Sentilla did a Java VM for the MSP430. This got a lot of traction - they even 
had James Gosling himself vouch for the project.&lt;p&gt;More recently, Electric Imp and Particle.io have taken similar approaches, but with other languages.&lt;p&gt;Micropython and a variety of mini-JS engines are also around. Espruino, Tessel.io, and many more.&lt;p&gt;In a technical sense, running a virtual machine on a microcontroller is a really good way to go. You remove a lot of low-level friction that you otherwise have to deal with. And you get a lot of things almost for free, such as Over-The-Air (OTA) updates, and more control over security.&lt;p&gt;But when you get down to actually doing the work, you frequently end up &lt;i&gt;wanting&lt;/i&gt; to have all that low-level access, even if you have to endure a bit of pain. Sometimes you don&amp;#x27;t even want to have an operating system with a hardware abstraction layer. You kinda want the bare metal.&lt;p&gt;So Toit are in a tricky situation. They may have a really good product. But they will have to get some serious traction. Developing a rock solid programming language and virtual machine is hard. Really hard. But it is way easier than to get that sweet, sweet traction.</text></comment>
<story><title>A virtual machine for microcontrollers</title><url>https://blog.toit.io/why-doesnt-v8-fit-on-my-microcontroller-71dc6e2d8f5c</url></story><parent_chain></parent_chain><comment><author>vajrabum</author><text>Kaspar Lund of V8 and Dart fame and Toit.io have brought an IOT  platform to market based around a purpose designed dynamic language with a bytecode VM optimized for use in MCUs. That VM engine  is hosted in FreeRTOS which together with the VM and a deployment API provide a reliable and crash resistant platform for deploying apps to your IOT fleet. In their words &amp;quot;deploy a long-lived Toit application on your device, as if it was a mobile app being installed on your smart phone.&amp;quot; (&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;docs.toit.io&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;docs.toit.io&lt;/a&gt;)&lt;p&gt;The server end of their platform provides the management and app deployment infrastructure. It&amp;#x27;s claimed that the RTOS and VM environment makes deployment reliable even in the presence of failing apps. And that one app on a IOT device will not prevent other apps from running compromise management or brick the device.&lt;p&gt;Toit.io, the company makes $$ by charging you .10&amp;#x2F;MB after the first 100MB&amp;#x2F;mo for use of their management and app deployment and you are left free to choose your own data platform. What I don&amp;#x27;t have  feel for is what sort of utilization per device I can expect for the management and instrumentation traffic.&lt;p&gt;*Edit I dug around the website and the tooling including the language looks like it is mostly closed source.</text></comment>