2023RobotCode
blech
2023RobotCode | blech | |
---|---|---|
1 | 1 | |
0 | 63 | |
- | - | |
6.3 | 0.0 | |
6 months ago | about 1 year ago | |
C | F# | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
2023RobotCode
-
Coroutines make robot code easy for high schoolers
In practice we actually do; I had to simplify for the article. We have a few utilities like a `runUntilDone` that make simple sequences easier to write. Example: https://github.com/frc-2175/2023RobotCode/blob/main/src/lua/...
I suppose we could make more utilities for running coroutines "in parallel", but I haven't really felt the need. At that point we usually have to worry about exit conditions and it feels natural to just write a loop.
blech
-
Coroutines make robot code easy for high schoolers
The reactivity and intuitive single-threaded concurrency makes it a really nice language for low-powered devices. Or robotics, which is a lot about reacting to sensor input.
It has a dedicated Arduino repo too[1].
In practice it's more of a research language by Francisco Sant’Anna, a professor at UERJ, Brazil, than a language with a big community around it. He's currently working on a new version caleld Dynamic Ceu, or dceu[2]
In the same paradigm there is the Blech[3] language, I believe originating from Bosch. Sadly, that project also has lost some steam.
[0] https://github.com/ceu-lang/ceu-arduino
[1] http://ceu-lang.org/
[2] https://github.com/fsantanna/dceu
[3] https://github.com/blech-lang/blech
What are some alternatives?
ceu-arduino - Arduino binding for Céu
preemptible-thread - How to preempt threads in user space
dceu
pros - Source code for PROS kernel: open source C/C++ development for the VEX V5 microcontroller
quaint-lang - An experimental statically typed procedural language with first-class resumable functions.
BehaviorTree.CPP - Behavior Trees Library in C++. Batteries included.