This proposal has been approved and the Eclipse Mita project has been created.
Visit the project page for the latest information and development.

Eclipse Mita

Friday, August 18, 2017 - 05:51 by Reiner Schmohl
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Project
Parent Project
Working Group
Proposal State
Created
Background

The Internet of Things (IoT) revolves around the development, mass-production and deployment of wireless embedded sensor devices. This development has to reconcile competing goals. Many IoT devices are resource-constraint (e.g. in power, memory, computation), which mandates we write software on a low abstraction level (in C, working on a bare resource-level). This eases product development later-on but impedes exploration and flexibility. Developers have to care about hardware-specific details instead of focusing on sensor data and connectivity to the Cloud or other systems. Novices face a high entry barrier and are offered a complex developer experience.

Scope

Eclipse Mita aims to build a new programming language for the embedded IoT including editor/IDE, compiler and an extensive test-suite. Mita inherits the syntax of modern general-purpose system-level languages (e.g. Swift or Rust), but compiles to near-production ready C code. It offers powerful abstractions for sensor access, connectivity and general purpose IO. Centered around developer experience, it is build as a DSL using Eclipse Xtext.

Description

Eclipse Mita is a programming language for the embedded IoT. We combine a declarative setup of system resources (e.g. Bluetooth connectivity or a temperature sensor) with a modern imperative language. We introduce first-class primitives for sensor access and connectivity to other systems, which allows for quick exploration and integration into IoT ecologies. We support embedded algorithm through powerful primitives, e.g. lists, vectors and statistic functions. In order to prevent problems at compile-time Mita has a static strong type-system. Lastly, we offer direct interaction with sensor data and in-situ developer support by integrating with the embedded software development toolchains.

The demo below gives an incling of how the language works:

 

Why Here?

The Eclipse IoT ecosystem supports organizations and developers in building solutions on medium-power devices, to communicate between devices (Leshan, Vorto) and in the Cloud. While in the embedded and low-power space Eclipse is present with the CDT, IoT specific problems are yet to be addressed. Mita would be a step towards expanding the Eclipse IoT ecosystem into low-power, embedded solution development.

Future Work

In future work we plan to explore the language level integration with Eclipse Vorto. Further, we intend to investigate a visual programming language built on top of this work.

Initial Contribution

The initial code drop will follow.

Source Repository Type