Scripts & Things

Scripts and Things banner

The Moddable team is starting a Meetup about embedded software development using JavaScript on microcontrollers and other embedded systems. The group is called Scripts & Things and our first gathering will be on August 22nd at the Moddable office in downtown Palo Alto.

We chose the name Scripts & Things because the Meetup focuses on the intersection of JavaScript and the devices that make up the Internet of Things. Unlike other JavaScript Meetups, Scripts & Things is about running JavaScript directly on embedded hardware — not about cloud services, server-side technologies, or the web.

Each Meetup will feature two talks on scripting for IoT topics, an "open mic" slot for announcements/show-and-tell/etc, and time to talk before and after. Our first meeting's agenda also includes time to discuss the vision for the group and what everyone would like to get out of future Meetups.

Scripts & Things is a valuable and unique meeting place for embedded JavaScript developers. Because these are rare individuals for the moment, our first meetings will cater to audiences with two very different backgrounds: traditional embedded developers with minimal experience using JavaScript and JavaScript developers with minimal experience on embedded platforms. Over time, we hope that each group will acquire many of the skills of the other.

On August 22nd, I will make the case to both groups that JavaScript and IoT are a natural fit for each other. The remainder of this post is a preview of some of what I'll be discussing.

Why JavaScript Matters to Embedded Developers

Consumer IoT is fundamentally broken. The vast majority of popular devices being sold today are strictly controlled by their manufacturers and closed off from developers. As I've written about at some length before, this results in devices that feature a disturbing lack of transparency, are impossible to fully customize to our needs, and are dependent upon online services that may or may not continue to exist in the long run.

The consequences of these faults can be dire:

Scriptability solves these problems and more.

First, JavaScript is a safer and better language for building IoT devices. It is efficient work in, provides fewer chances for developers to make catastrophic security mistakes, and can be tuned for excellent performance on embedded devices.

Second, building embedded devices with JavaScript makes it much easier to leave them open to future customization and changes. As we have demonstrated with the concept of mods, it is possible to design IoT device firmware in a way that enables Apps for Things.

Why Embedded Matters to JavaScript Developers

The Internet of Things is a booming business. Estimates vary, but reasonable analysts put the current market size somewhere in the neighborhood of $171 billion per year with room to grow towards $457 billion by 2020.

The impact of the IoT industry is already obvious as many homes now have a connected device such as an Amazon Echo, Nest Thermostat, or Ring Doorbell. Again estimates vary wildly, but one study by Gartner suggests that there are as many as 7 billion consumer connected devices already out in the world today, with a forecast of 12.8 billion devices by 2020. And (per, e.g., analysis by Intel) consumer IoT is a small drop in the bucket compared to the market for industrial and commercial IoT devices such as those used in health care, manufacturing, and retail.

JavaScript's ubiquity in browsers has allowed it to dominate the past two major tech booms: the web and mobile devices. Node.js has sparked a revolution in development of back-end services using JavaScript. But new platforms, tools, and software engineering techniques are needed to capture the potential of JavaScript within the embedded market.

Embedded devices have much more limited resources than PCs, mobile phones, or servers. It is not realistic to expect the web's popular frameworks (e.g. React), JavaScript engines (e.g. Chrome V8), and best practices to "just work" on embedded. New approaches are needed that focus on memory usage, storage footprint, power efficiency, and more.

Join us for the First Scripts & Things on August 22nd

At each month's Script's & Things Meetup, we will discuss the platforms, tools, and approaches for building embedded devices with JavaScript from a variety of perspectives. Whether you're a JavaScript developer, a traditional embedded developer, or a curious bystander, we hope that you will join us for the inaugural meeting in August.