language matters: javascript from iot product concept to production

Post on 25-Jan-2017

708 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Language Matters: JavaScript from IoT Product Concept

to Production

Andy Carle, PhD@PrototypingAndy@Kinoma

@dothingscon December 3, 2015

@kinoma

@kinoma

Scope: Connected Devices

Expand theDeveloper Pool

Improve Outcomes for Existing Developers

Two GoalsWeb Front-End Developers

Product Designers

@kinoma

Processing Developers

Native Language

Developers

Node.js & Python Developers

Tools: Low-Level Languages &

Bare Dev Boards

Process: Waterfall Method

Two Hurdles

@kinoma

Verification

Maintenance

Requirements Product requirements document

Design Software architecture

Implementation Software

Two Solutions

Tools:JavaScript and Beautiful

Prototyping Hardware

Process:Iteration at Every Step

@kinoma

ITERATE

ITERATE

ITERATE

Making It: The Old (Current) Way

Ship it!

Get funding

Prototype on Arduino

(Processing)

Prototype on BeagleBone/Raspberry Pi

(Interpreted languages)Prove concept Abandon

all progressLearn that platform

isn’t production-ready

Learn native language

Re-build it all on target platform

A YEAR LATER

@kinoma

ITERATE

ITERATE

ITERATE

Making It: The Old (Current) Way

Ship it!

Get funding

Prototype on Arduino

(Processing)

Prototype on BeagleBone/Raspberry Pi

(Interpreted languages)Prove concept Abandon

all progressLearn that platform

isn’t production-ready

Learn native language

Re-build it all on target platform

A YEAR LATER

The Chasm of Despair

@kinoma

We Should Be Doing Better

DESIGN PROTOTYPE TESTITERATE

1. Software Simulation

2. Hardware Simulation

3. Prototyping Hardware

4. Custom Hardware

DESIGN PROTOTYPE TESTITERATE

DESIGN PROTOTYPE TESTITERATE

DESIGN PROTOTYPE TESTITERATE

@kinoma

• Preserve progress between prototypes

- Application code - I/O libraries - Look & feel

• Saving time allows you to focus on

- Industrial design - Companion app - User testing - Community building

Don’t Re-Engineer; Expand Priorities

- Crowdfunding campaign management - Investor relations - Building a brand

@kinoma

IoT’s Diversity Makes Traditional Software Development Impractical

• network connectivity • cloud services • sensors • power requirements • business rules • security

Different

@kinoma

• be updated • implement new features • support the latest mobile

companion app • connect to new cloud

services • fix security problems

They must

@kinoma

IoT Products are Not Static

Web (Desktop)

Mobile (Apps and Web)

Server

Embedded

JavaScript’s Frontier Left to Conquer

@kinoma

We are preaching the religion of JavaScript for embedded and Internet of Things development

• Performance

• Memory

• User scripting

• Familiar syntax

• JavaScript coders build cool stuff fast

JavaScript Makes IoT Development Usable

@kinoma

JavaScript as the Language of IoT

• programmers work faster • produce more reliable code • it’s trivial to connect to the

cloud and other devices • reading and writing JSON

messages is built in

With JavaScript

@kinoma

ES6 contains more than 400 individual changes to:

• make the language more concise

• improve performance

• integrate support for modules

The addition of modules to the language is fundamental to architecting reliable, long running devices, making JavaScript 6th Edition the right foundation for connecting IoT products.

JavaScript 6th Edition for IoT

@kinoma

Popular Frameworks Aren’t IoT Ready• Browser-based solutions: Too heavy for IoT devices

• Node.js: Server solution being shoehorned into the embedded space

• Qt: Designed for desktop, too much of a catch-all of features

• Lua: Less popular than assembly and COBOL, so difficult to find talent and no significant ecosystem

@kinoma

Available as open source since March 2015. Customers benefit from the flexibility and stability that open source offers.

The first application framework optimized for IoT that speaks the language of the web. Code hardware projects using familiar JavaScript.

Kinoma’s implementation of JavaScript 6th Edition is the smallest, the most complete today, and fast.

KinomaJS

@kinoma

@kinoma

KinomaJS

Render digital media

• Photos • Music • Video

Manage the hardware

• Power • Sensors • Schedulers

Operate theuser interface

• Buttons • Lights • Screens

Coordinatecommunication

• Network • Devices • Cloud

@kinoma

IDE and Visual Programming

Studio

Kinoma’s IoT Product Design HardwareCustomizable products for prototypers:

• integrate professional-grade hardware

• use the open source KinomaJS application framework with JavaScript 6th Edition for app development

• use the same pro-developer tools, making prototyping efficient across product teams

@kinoma

@kinoma

Usability as a First-Order Design Goal

Kinoma Create

@kinoma

Both Delicate and Intimidating

• No Wi-Fi • No case • No battery • No screen • No onboard apps

Why Kinoma Hardware has a Case

@kinoma

Assembling your Raspberry Pi enclosure is relatively straightforward if you’ve ever built any t-slot based laser cut stuff before, but here’s a full guide… - Built to Spec

@kinoma

@kinoma

Onboard Apps v. the Command Line

@kinoma

@kinoma

Introducing Kinoma Element

@kinoma

Introducing Kinoma HD

• Bring most any sensor

• Connect to most any cloud

• Use most any protocol

• Open for developers to expand • PCB designs • 3D design files for case • KinomaJS software • All on GitHub with permissive

open source licenses

Open sensor. Open cloud. Open to expand.

@kinoma

Thank you!Andy Carle, PhD

@PrototypingAndy@Kinoma

kinoma.com

top related