IIRC, Microsoft developed a programming language called P that is also centered around events; I seem to recall they wrote the USB stack in Windows 8/8.1 in it.
The approach to memory management in Mita looks interesting, at least for realtime system.
This was released in May ... "Eclipse Mita was initially developed by Bosch Connected Devices and Solutions with the help of itemis. It was first implemented for the XDK Workbench, the IDE for Bosch’s XDK device, where the language is currently called XDK Live."
"The framework comes with two sets of C code generators: application code generators and platform specific code generators. Application code generators know how to transform Mita language constructs like event handlers, for-each loops, or exceptions into valid C code. On the other hand, the platform specific code generators know how to access your hardware’s sensor data or which register values to write to make your LED blink."
Looks a lot like Arduino’s “language” that was a thinwrapped C++.
Then there is Processing which is a DSL of sorts and this Mita look like them trying to simplify the wrong part of task.
It is not complex to split your program into particular blocks - how you connect blocks and if these blocks are the “right size”, what blocks you actually need etc. THAT needs simpler means to develop faster.
And this id about IoT - hopefully measurements and units are handled well and that last “thing”.. security, yeees that one needs simpler solutions!
This always works with small examples, but platforms can be quite tricky, expecting you to adhere to complex timing requirements, optimize for strange memory layouts or barely hide some almost "dsl" scripted drivers below.
Which means, instead of adapting a existing code-base on demand, you will have to rewrite a lot of driver code - on demand. So the work stays the same, if you respect the HAL.
Its a very good idea to force people to respect the HAL encapsulation.
Problem there is that most professional embedded development is burdened with that "Can you make it on a cheaper chip?" - which results in optimization- and before you know it, you have a overlapping objects union of nearly everything in a algorithm, to reuse constant cached space .. and everyone hates you..
We have the C and the assembler, because these controlled "violations" and journeys into UD, are often the destination at the end of commercial projects. Its the same reasons, why game-engines final builds often cant be reused.
This should be- however the language of choice to teach beginners good habits.
What is the end result with this? If you have no embedded experience and want to build a product how does this help? How are you suppose to spin custom hardware if you 1. have no embedded experience and 2. are wrapped up in this abstraction which only lets you access some undocumented iot IC(s) + a handful of sensors.
Such an uninspiring idea that would be underdeveloped and underused.. People should focus on more important aspects in IoT (security, scalability, privacy etc) and use existing solutions with better design to achieve the goals of this project without this project.
7 comments
[ 3.6 ms ] story [ 32.8 ms ] threadThe approach to memory management in Mita looks interesting, at least for realtime system.
"The framework comes with two sets of C code generators: application code generators and platform specific code generators. Application code generators know how to transform Mita language constructs like event handlers, for-each loops, or exceptions into valid C code. On the other hand, the platform specific code generators know how to access your hardware’s sensor data or which register values to write to make your LED blink."
https://blogs.itemis.com/en/eclipse-mita-bringing-software-d...
Then there is Processing which is a DSL of sorts and this Mita look like them trying to simplify the wrong part of task.
It is not complex to split your program into particular blocks - how you connect blocks and if these blocks are the “right size”, what blocks you actually need etc. THAT needs simpler means to develop faster.
And this id about IoT - hopefully measurements and units are handled well and that last “thing”.. security, yeees that one needs simpler solutions!
Which means, instead of adapting a existing code-base on demand, you will have to rewrite a lot of driver code - on demand. So the work stays the same, if you respect the HAL.
Its a very good idea to force people to respect the HAL encapsulation.
Problem there is that most professional embedded development is burdened with that "Can you make it on a cheaper chip?" - which results in optimization- and before you know it, you have a overlapping objects union of nearly everything in a algorithm, to reuse constant cached space .. and everyone hates you..
We have the C and the assembler, because these controlled "violations" and journeys into UD, are often the destination at the end of commercial projects. Its the same reasons, why game-engines final builds often cant be reused.
This should be- however the language of choice to teach beginners good habits.
Just a gimmick, really.