language matters: javascript from iot product concept to production
TRANSCRIPT
![Page 1: Language Matters: JavaScript from IoT Product Concept to Production](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/1.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/2.jpg)
@kinoma
![Page 3: Language Matters: JavaScript from IoT Product Concept to Production](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/3.jpg)
@kinoma
Scope: Connected Devices
![Page 4: Language Matters: JavaScript from IoT Product Concept to Production](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/4.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/5.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/6.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/7.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/8.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/9.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/10.jpg)
• 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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/11.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/12.jpg)
• 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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/13.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/14.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/15.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/16.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/17.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/18.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/19.jpg)
@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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/20.jpg)
@kinoma
IDE and Visual Programming
Studio
![Page 21: Language Matters: JavaScript from IoT Product Concept to Production](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/21.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/22.jpg)
@kinoma
Usability as a First-Order Design Goal
![Page 23: Language Matters: JavaScript from IoT Product Concept to Production](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/23.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/24.jpg)
Why Kinoma Hardware has a Case
@kinoma
![Page 25: Language Matters: JavaScript from IoT Product Concept to Production](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/25.jpg)
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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/26.jpg)
@kinoma
![Page 27: Language Matters: JavaScript from IoT Product Concept to Production](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/27.jpg)
Onboard Apps v. the Command Line
@kinoma
![Page 28: Language Matters: JavaScript from IoT Product Concept to Production](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/28.jpg)
@kinoma
Introducing Kinoma Element
![Page 29: Language Matters: JavaScript from IoT Product Concept to Production](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/29.jpg)
@kinoma
Introducing Kinoma HD
![Page 30: Language Matters: JavaScript from IoT Product Concept to Production](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/30.jpg)
• 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](https://reader035.vdocument.in/reader035/viewer/2022062821/58879c311a28ab5b1a8b6d03/html5/thumbnails/31.jpg)