SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Developing M2M apps with Lua
 Benjamin Cabé – Sierra Wireless




Developing M2M apps with Lua
What is M2M?



                                Technology that supports
                                wired or wireless
                                communication
                                between devices




Developing M2M apps with Lua
Smart
    Pill 
    Box
              Near field
                                                                            Patient
     Heartbeat
     Sensor
                                      Medical
                                      Services
                                      Gateway
                       Clinical Trial
Weight
                                            Internet
Scale
                                            of Things


                                                  Communication
                                                   Infrastructure
   Doctor
          Blood
          Pressure
                                 Blood
                                 Sugar




 Developing M2M apps with Lua
What is Lua?
 •    A programming language
 •    High Level
 •    Scripting
 •    Extensible
 •    Simple
 •    Efficient
 •    Portable



Developing M2M apps with Lua
What it is not
 •    An acronym
 •    A replacement for C (C++)
 •    A that recent language (1993)
 •    Used only for games
       –  Cisco, Adobe, Oracle, …
       –  See: http://en.wikipedia.org/wiki/Lua_(programming_language)#Other 




Developing M2M apps with Lua
Extensible
 •  Small
       –  Trivial syntax and reduced keyword set
 •  Simple but not stupid
       –  Simple enough for new user, powerful enough for
          advanced users (first-class functions, garbage
          collection, closures, tail calls, coercion, coroutines)
 •  Lua core is tiny
       –  Compiled size is ~150kB
       –  Lua uses libraries for its extensions


Developing M2M apps with Lua
Portable
 •  The exact same code runs on different targets
 •  Lua VM is written in pure C ANSI 




Developing M2M apps with Lua
High-level feature set
 •  Easy-to-use high level structures: strings, lists,
    tables, sets, hash-tables
 •  Automatic memory management with garbage
    collector
 •  Proper error/exceptions management




Developing M2M apps with Lua
High-level feature set (cont’d)
 •  Easy user interaction and advanced tools
       –  console
       –  package manager, profilers, unit tests, …
 •  Shorter development cycles
       –  write, load without rebooting, look at what
          happens interactively, reload etc. 
 •  Controlled execution model
       –  Prevent pointer arithmetic and memory
          management issues
       –  Graceful handling of incorrect arguments

Developing M2M apps with Lua
Lua vs. other high-level languages
 •  Same core features as Python, Ruby, Javascript 
 •  Better concurrency management
       –  Built-in – doesn’t rely on OS
 •  Cutting-edge execution technology &
    performances
 •  Restricted set of libraries
       –  Stay simple, the developer brings his own 
 •  Outstanding Lua/C integration
       –  Performance
       –  Legacy
Developing M2M apps with Lua
Lua for embedded and M2M
 •  High-level languages usually trade hardware
    resources for development & maintenance
    resources
 •  Transition fully embraced on PC and servers,
    not yet on embedded devices, largely due to a
    history of resource scarcity

                    Lua allows to reconcile high-level
                      languages accomplishments
                       with embedded constraints

Developing M2M apps with Lua
Lua application framework for M2M
 •  User application container, embedded runtime
 •  Set of libraries providing building blocks to
    develop user M2M applications:
       –  Serial and I/O management, 
       –  Networking (FTP, HTTP, E-mail clients),
       –  GPS, 
       –  Cryptography, 
       –  Modbus, 
       –  Local storage,
              http://www.eclipse.org/mihini

       –  M2M server communication…

Developing M2M apps with Lua
IDE for Lua development
 •    Project structure
 •    Syntax coloring
 •    Content assist
 •    Code navigation
                                June 2012: first release (0.8)
 •    Code formatting
          Dec. 2012: 0.9 release
                                June 2013: graduate w/ Kepler
 •    Documentation
            20,000+ installations already!

 •    Code templates
 •    Debugger
 •    Remote development
Developing M2M apps with Lua
IDE for M2M development
 •  We started working on Mihini support in
    Koneki
       –  Mihini execution environment for code assist
       –  Target Management for controlling the
          Application Container, accessing the logs, …
       –  Creation of software packages




Developing M2M apps with Lua
Lua for end-user applications?
 •  Many mobile development frameworks*
       –  Corona SDK**
       –  Gideros Mobile
       –  LÖVE2D
       –  etc.

 * guess what? You can use Koneki LDT to develop for these frameworks!
 ** see http://youtu.be/XOlopalLKeU (« EclipseCon CoronaSDK »)




Developing M2M apps with Lua
More information
 •  M2M Portal
      http://m2m.eclipse.org 
 •  Koneki
      http://www.eclipse.org/koneki
 •  Mihini
      http://www.eclipse.org/mihini 




              Thank You!
Developing M2M apps with Lua

Mais conteúdo relacionado

Semelhante a M2M webinar - Developing M2M applications with Lua

Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Benjamin Cabé
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Benjamin Cabé
 
Introduction to Android
Introduction to AndroidIntroduction to Android
Introduction to AndroidNitinMehra2205
 
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183Robert Nicholson
 
Open World Forum 2012 - Introduction to the Eclipse M2M Industry Working Group
Open World Forum 2012 - Introduction to the Eclipse M2M Industry Working GroupOpen World Forum 2012 - Introduction to the Eclipse M2M Industry Working Group
Open World Forum 2012 - Introduction to the Eclipse M2M Industry Working GroupBenjamin Cabé
 
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Benjamin Cabé
 
Jornada Desarrolladores: WAC: 'Wholesale Applications Community'
Jornada Desarrolladores: WAC: 'Wholesale Applications Community' Jornada Desarrolladores: WAC: 'Wholesale Applications Community'
Jornada Desarrolladores: WAC: 'Wholesale Applications Community' videos
 
IMPACT Interoperability Framework - Clemens Neudecker
IMPACT Interoperability Framework - Clemens NeudeckerIMPACT Interoperability Framework - Clemens Neudecker
IMPACT Interoperability Framework - Clemens NeudeckerIMPACT Centre of Competence
 
Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.Gladson DSouza
 
BIL Corporate
BIL CorporateBIL Corporate
BIL Corporatebschandru
 
Introducing MQ Light - IBM Interconnect 2015 session AME4181
Introducing MQ Light - IBM Interconnect 2015 session AME4181Introducing MQ Light - IBM Interconnect 2015 session AME4181
Introducing MQ Light - IBM Interconnect 2015 session AME4181Robert Nicholson
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices ArchitectureVin Dahake
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
 
Taming unruly apps with open source networking
Taming unruly apps with open source networkingTaming unruly apps with open source networking
Taming unruly apps with open source networkingSusan Wu
 
Mobile appliaction w android week 1 by osama
Mobile appliaction w android week 1 by osamaMobile appliaction w android week 1 by osama
Mobile appliaction w android week 1 by osamaOsama Ghandour Geris
 
Acceleo Day - Orange
Acceleo Day - OrangeAcceleo Day - Orange
Acceleo Day - Orangesliard
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentvajratech
 

Semelhante a M2M webinar - Developing M2M applications with Lua (20)

Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
 
Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013Open source building blocks for the Internet of Things - Jfokus 2013
Open source building blocks for the Internet of Things - Jfokus 2013
 
Introduction to Android
Introduction to AndroidIntroduction to Android
Introduction to Android
 
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
 
Open World Forum 2012 - Introduction to the Eclipse M2M Industry Working Group
Open World Forum 2012 - Introduction to the Eclipse M2M Industry Working GroupOpen World Forum 2012 - Introduction to the Eclipse M2M Industry Working Group
Open World Forum 2012 - Introduction to the Eclipse M2M Industry Working Group
 
Android quick talk
Android quick talkAndroid quick talk
Android quick talk
 
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
Using Eclipse and Lua for the Internet of Things with Eclipse Koneki, Mihini ...
 
Jornada Desarrolladores: WAC: 'Wholesale Applications Community'
Jornada Desarrolladores: WAC: 'Wholesale Applications Community' Jornada Desarrolladores: WAC: 'Wholesale Applications Community'
Jornada Desarrolladores: WAC: 'Wholesale Applications Community'
 
IMPACT Interoperability Framework - Clemens Neudecker
IMPACT Interoperability Framework - Clemens NeudeckerIMPACT Interoperability Framework - Clemens Neudecker
IMPACT Interoperability Framework - Clemens Neudecker
 
Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.
 
Synapseindia android apps overview
Synapseindia android apps overviewSynapseindia android apps overview
Synapseindia android apps overview
 
BIL Corporate
BIL CorporateBIL Corporate
BIL Corporate
 
Introducing MQ Light - IBM Interconnect 2015 session AME4181
Introducing MQ Light - IBM Interconnect 2015 session AME4181Introducing MQ Light - IBM Interconnect 2015 session AME4181
Introducing MQ Light - IBM Interconnect 2015 session AME4181
 
Monolithic to Microservices Architecture
Monolithic to Microservices ArchitectureMonolithic to Microservices Architecture
Monolithic to Microservices Architecture
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
Taming unruly apps with open source networking
Taming unruly apps with open source networkingTaming unruly apps with open source networking
Taming unruly apps with open source networking
 
Mobile appliaction w android week 1 by osama
Mobile appliaction w android week 1 by osamaMobile appliaction w android week 1 by osama
Mobile appliaction w android week 1 by osama
 
Acceleo Day - Orange
Acceleo Day - OrangeAcceleo Day - Orange
Acceleo Day - Orange
 
Android Introduction
Android IntroductionAndroid Introduction
Android Introduction
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 

Mais de Benjamin Cabé

IoT Developer Survey 2018
IoT Developer Survey 2018IoT Developer Survey 2018
IoT Developer Survey 2018Benjamin Cabé
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Benjamin Cabé
 
JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?Benjamin Cabé
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Benjamin Cabé
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Benjamin Cabé
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016Benjamin Cabé
 
On making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handOn making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handBenjamin Cabé
 
Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Benjamin Cabé
 
Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Benjamin Cabé
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTBenjamin Cabé
 
Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Benjamin Cabé
 
End-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackEnd-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackBenjamin Cabé
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialBenjamin Cabé
 
Open-source IoT cookbook
Open-source IoT cookbookOpen-source IoT cookbook
Open-source IoT cookbookBenjamin Cabé
 
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBuilding the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBenjamin Cabé
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Benjamin Cabé
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014Benjamin Cabé
 
Overview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleOverview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleBenjamin Cabé
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Benjamin Cabé
 
A guided tour of Eclipse M2M - EclipseCon Europe 2013
A guided tour of Eclipse M2M - EclipseCon Europe 2013A guided tour of Eclipse M2M - EclipseCon Europe 2013
A guided tour of Eclipse M2M - EclipseCon Europe 2013Benjamin Cabé
 

Mais de Benjamin Cabé (20)

IoT Developer Survey 2018
IoT Developer Survey 2018IoT Developer Survey 2018
IoT Developer Survey 2018
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018
 
JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
 
On making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handOn making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in hand
 
Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016
 
Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
 
Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...
 
End-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackEnd-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stack
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
 
Open-source IoT cookbook
Open-source IoT cookbookOpen-source IoT cookbook
Open-source IoT cookbook
 
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBuilding the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetup
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014
 
Overview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleOverview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day Grenoble
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013
 
A guided tour of Eclipse M2M - EclipseCon Europe 2013
A guided tour of Eclipse M2M - EclipseCon Europe 2013A guided tour of Eclipse M2M - EclipseCon Europe 2013
A guided tour of Eclipse M2M - EclipseCon Europe 2013
 

M2M webinar - Developing M2M applications with Lua

  • 1. Developing M2M apps with Lua Benjamin Cabé – Sierra Wireless Developing M2M apps with Lua
  • 2. What is M2M? Technology that supports wired or wireless communication between devices Developing M2M apps with Lua
  • 3. Smart Pill Box Near field Patient Heartbeat Sensor Medical Services Gateway Clinical Trial Weight Internet Scale of Things Communication Infrastructure Doctor Blood Pressure Blood Sugar Developing M2M apps with Lua
  • 4. What is Lua? •  A programming language •  High Level •  Scripting •  Extensible •  Simple •  Efficient •  Portable Developing M2M apps with Lua
  • 5. What it is not •  An acronym •  A replacement for C (C++) •  A that recent language (1993) •  Used only for games –  Cisco, Adobe, Oracle, … –  See: http://en.wikipedia.org/wiki/Lua_(programming_language)#Other Developing M2M apps with Lua
  • 6. Extensible •  Small –  Trivial syntax and reduced keyword set •  Simple but not stupid –  Simple enough for new user, powerful enough for advanced users (first-class functions, garbage collection, closures, tail calls, coercion, coroutines) •  Lua core is tiny –  Compiled size is ~150kB –  Lua uses libraries for its extensions Developing M2M apps with Lua
  • 7. Portable •  The exact same code runs on different targets •  Lua VM is written in pure C ANSI Developing M2M apps with Lua
  • 8. High-level feature set •  Easy-to-use high level structures: strings, lists, tables, sets, hash-tables •  Automatic memory management with garbage collector •  Proper error/exceptions management Developing M2M apps with Lua
  • 9. High-level feature set (cont’d) •  Easy user interaction and advanced tools –  console –  package manager, profilers, unit tests, … •  Shorter development cycles –  write, load without rebooting, look at what happens interactively, reload etc. •  Controlled execution model –  Prevent pointer arithmetic and memory management issues –  Graceful handling of incorrect arguments Developing M2M apps with Lua
  • 10. Lua vs. other high-level languages •  Same core features as Python, Ruby, Javascript •  Better concurrency management –  Built-in – doesn’t rely on OS •  Cutting-edge execution technology & performances •  Restricted set of libraries –  Stay simple, the developer brings his own •  Outstanding Lua/C integration –  Performance –  Legacy Developing M2M apps with Lua
  • 11. Lua for embedded and M2M •  High-level languages usually trade hardware resources for development & maintenance resources •  Transition fully embraced on PC and servers, not yet on embedded devices, largely due to a history of resource scarcity Lua allows to reconcile high-level languages accomplishments with embedded constraints Developing M2M apps with Lua
  • 12. Lua application framework for M2M •  User application container, embedded runtime •  Set of libraries providing building blocks to develop user M2M applications: –  Serial and I/O management, –  Networking (FTP, HTTP, E-mail clients), –  GPS, –  Cryptography, –  Modbus, –  Local storage, http://www.eclipse.org/mihini –  M2M server communication… Developing M2M apps with Lua
  • 13. IDE for Lua development •  Project structure •  Syntax coloring •  Content assist •  Code navigation June 2012: first release (0.8) •  Code formatting Dec. 2012: 0.9 release June 2013: graduate w/ Kepler •  Documentation 20,000+ installations already! •  Code templates •  Debugger •  Remote development Developing M2M apps with Lua
  • 14. IDE for M2M development •  We started working on Mihini support in Koneki –  Mihini execution environment for code assist –  Target Management for controlling the Application Container, accessing the logs, … –  Creation of software packages Developing M2M apps with Lua
  • 15. Lua for end-user applications? •  Many mobile development frameworks* –  Corona SDK** –  Gideros Mobile –  LÖVE2D –  etc. * guess what? You can use Koneki LDT to develop for these frameworks! ** see http://youtu.be/XOlopalLKeU (« EclipseCon CoronaSDK ») Developing M2M apps with Lua
  • 16. More information •  M2M Portal http://m2m.eclipse.org •  Koneki http://www.eclipse.org/koneki •  Mihini http://www.eclipse.org/mihini Thank You! Developing M2M apps with Lua