Upload
kinoma
View
707
Download
0
Embed Size (px)
Citation preview
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