BLbluejekyll·Jan 11, 2020
Is this actively being developed? I don't see an update for the past 8 months.
From https://github.com/t1lang/t1lang.github.io/blob/master/North... slides, are telling for the language analysis to see why they think it's necessary to develop this:
Go:
- Only with TinyGo*
- Limited language/runtime support*
- "support for goroutines and channels is weak"
- Maps can ony have up to 8 (eight!) entries
- GC: only for ARM, other platforms "will just allocate memory without ever freeing it" (but GC is required for proper string management)
Rust:
- Inherits all memory-safety features of Rust
- Heap is optional
- But without the heap, everything is allocated on the stack
- Supports ARM Cortex-M and Cortex-R, RISCV, and MSP430 (experimental)
- Not other architectures that LLVM does not support
- Typically more stack-hun
Read the rest
gry than C
- Lots of automatic magic
Forth:
- Many incompatible implementations
- It's more a concept than a language (there is an ANSI standard)
- You are support to "write your own Forth"
- Very compact, with low RAM usage
- Even less safe than C and not portable
Given all this, is it really cheaper to write a new language than add architecture support to LLVM? I also don't understand the "lots of automatic magic", is that referring to the generics and/or type inference in Rust? Additionally, if not using Heap (the criticism about Heap being optional), where else would you allocate memory besides the Stack? Can someone who does embedded explain that?
btw, on the magic bit the T1 design does go on to talk about Generics support and a rich type system.
Edit: this comment sounds too negative, and that wasn't really my intent. I just wanted to better understand some of the considerations that were used in deciding to make this new language.