Could this be used for embedded development? Currently C is used pretty much universally for this purpose. While C is better than straight assembler, it seems to be very prone for bugs, especially when there are multiple developers and over time in maintenance phase.<p>Something safer is desperately needed for embedded firmware development. Lack of such a language is already affecting physical safety of end user devices.<p>Something that can run for example on a microwave oven, car engine control, digital thermometer and industrial machinery.<p>Maybe I'm missing some, but some of the most important wish list items I can think of right away:<p>- High readability, Golang-like "understandability"<p>- Anywhere between 1 - 256 kB of RAM, 2 - 1024 kB of program ROM.<p>- Must have C-like code density and performance, but a small loss is acceptable in exchange for better safety.<p>- Ability to implement IRQ service routines, etc. low level code.<p>- Array access, pointer and type safety.<p>- Debugging support... this is a tricky one.<p>- Migration assist from C code. Doesn't need to be perfect, just to assist where ever feasible.<p>- Would be very nice: Some language level support for duplicating and checking critical variables in memory. Like those for controlling servos etc. physical. To improve end user physical safety.<p>Targets should include at least, in order of importance:<p>- ARM thumb-2 (like Cortex M0)<p>- Altera NIOS 2 (must be possible to modify easily to target custom instructions)<p>- 8051<p>Various Atmel architectures, MIPS and OpenRISC would also be nice.<p>But I guess it comes down to LLVM support for those platforms.
Here the example on the site:<p><pre><code> func main(): int {
mut i := 0;
for i < 5 {
printf("i: %d\n", i);
i = i + 1;
}
return 0;
}
</code></pre>
I'm really curious about 2 things: that <i>for</i> seems to really be a <i>while</i>. Why := in the declare and = in the assignment?
How long before someone releases another language "to fix all the dangerous parts of C" -- but the twist is that this language is just C but it forces you into a `git add --patch`-style menu that makes you double check all your usage of malloc and free every time you compile?
I don't understand how a language can be a year old and have 3000 commits, but have so few tests in its implementation.<p>That is an instant red flag for me.
><i>Our goal is to write a systems programming language that adopts many modern concepts and advancements in the field of compilers and language design over the past 43 years.</i><p>But they still kept = for assignent and the very ugly == for comparaison. Into the trash it goes.