32
Language Matters: JavaScript from IoT Product Concept to Production Andy Carle, PhD @PrototypingAndy @Kinoma @dothingscon December 3, 2015

Language Matters: JavaScript from IoT Product Concept to Production

  • Upload
    kinoma

  • View
    707

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Language Matters: JavaScript from IoT Product Concept to Production

Language Matters: JavaScript from IoT Product Concept

to Production

Andy Carle, PhD@PrototypingAndy@Kinoma

@dothingscon December 3, 2015

Page 2: Language Matters: JavaScript from IoT Product Concept to Production

@kinoma

Page 3: Language Matters: JavaScript from IoT Product Concept to Production

@kinoma

Scope: Connected Devices

Page 4: Language Matters: JavaScript from IoT Product Concept to Production

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

Page 5: Language Matters: JavaScript from IoT Product Concept to Production

Tools: Low-Level Languages &

Bare Dev Boards

Process: Waterfall Method

Two Hurdles

@kinoma

Verification

Maintenance

Requirements Product requirements document

Design Software architecture

Implementation Software

Page 6: Language Matters: JavaScript from IoT Product Concept to Production

Two Solutions

Tools:JavaScript and Beautiful

Prototyping Hardware

Process:Iteration at Every Step

@kinoma

Page 7: Language Matters: JavaScript from IoT Product Concept to Production

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

Page 8: Language Matters: JavaScript from IoT Product Concept to Production

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

Page 9: Language Matters: JavaScript from IoT Product Concept to Production

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

Page 10: Language Matters: JavaScript from IoT Product Concept to Production

• 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

Page 11: Language Matters: JavaScript from IoT Product Concept to Production

IoT’s Diversity Makes Traditional Software Development Impractical

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

Different

@kinoma

Page 12: Language Matters: JavaScript from IoT Product Concept to Production

• 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

Page 13: Language Matters: JavaScript from IoT Product Concept to Production

Web (Desktop)

Mobile (Apps and Web)

Server

Embedded

JavaScript’s Frontier Left to Conquer

@kinoma

Page 14: Language Matters: JavaScript from IoT Product Concept to Production

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

Page 15: Language Matters: JavaScript from IoT Product Concept to Production

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

Page 16: Language Matters: JavaScript from IoT Product Concept to Production

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

Page 17: Language Matters: JavaScript from IoT Product Concept to Production

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

Page 18: Language Matters: JavaScript from IoT Product Concept to Production

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

Page 19: Language Matters: JavaScript from IoT Product Concept to Production

@kinoma

KinomaJS

Render digital media

• Photos • Music • Video

Manage the hardware

• Power • Sensors • Schedulers

Operate theuser interface

• Buttons • Lights • Screens

Coordinatecommunication

• Network • Devices • Cloud

Page 20: Language Matters: JavaScript from IoT Product Concept to Production

@kinoma

IDE and Visual Programming

Studio

Page 21: Language Matters: JavaScript from IoT Product Concept to Production

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

Page 22: Language Matters: JavaScript from IoT Product Concept to Production

@kinoma

Usability as a First-Order Design Goal

Page 23: Language Matters: JavaScript from IoT Product Concept to Production

Kinoma Create

@kinoma

Both Delicate and Intimidating

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

Page 24: Language Matters: JavaScript from IoT Product Concept to Production

Why Kinoma Hardware has a Case

@kinoma

Page 25: Language Matters: JavaScript from IoT Product Concept to Production

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

Page 26: Language Matters: JavaScript from IoT Product Concept to Production

@kinoma

Page 27: Language Matters: JavaScript from IoT Product Concept to Production

Onboard Apps v. the Command Line

@kinoma

Page 28: Language Matters: JavaScript from IoT Product Concept to Production

@kinoma

Introducing Kinoma Element

Page 29: Language Matters: JavaScript from IoT Product Concept to Production

@kinoma

Introducing Kinoma HD

Page 30: Language Matters: JavaScript from IoT Product Concept to Production

• 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

Page 31: Language Matters: JavaScript from IoT Product Concept to Production
Page 32: Language Matters: JavaScript from IoT Product Concept to Production

Thank you!Andy Carle, PhD

@PrototypingAndy@Kinoma

kinoma.com