4 ms·
I've been using Odin for about 6 months now, and to be honest, it's hard to find fault with it. I've used it for STM32 microcontroller firmware, web and desktop
by andyfilms1 3mo ago
I've been using Odin for about 6 months now, and to be honest, it's hard to find fault with it. I've used it for STM32 microcontroller firmware, web and desktop applications, and all are performant and compile quickly.
My one issue is (and I'm fully aware it will never happen) I do wish there was some sort of first-class solution to inheritance. I've grown to love procedural programming, but some problems really are just better solved with a more OOP approach. Just because classes exist does not mean they need to be used.
But as far as a language to "get stuff done" with as few tradeoffs as possible, Odin is about as good as I can imagine a language being.
- clumsysmurf 3mo agoI'd like to hear more about Odin + STM32 MCU firmware, do you have any good resources? I'm also curious how difficult it may be to using it with ESP32 (ESP-IDF) / RP2350.
- andyfilms1 3mo agoYou can look at my repo here: https://github.com/MadlyFX/odin-embedded-boilerplate https://github.com/MadlyFX/odin-embedded-boilerplate I don't believe Xtensa (ESP32) is supported yet, but people have been asking for it, so it may happen at some point. ARM is well supported now though, obviously.
- RetroTechie 3mo agoOut of curiosity: In your opinion, could a minimal system to develop in Odin be squeezed into a device like the one(s) you targeted? That's assuming maybe some tweaks to the toolset, doing without some niceties, but not cutting core features out of the language. Asking 'cause I have a passing interest in programming languages that allow for native development on really small implementations (think sub-1MB on bare metal). The list of candidates doesn't seem long.
- andyfilms1 3mo agoOdin is not like JS or something where you'd need a VM or transpilation process to target an embedded system. It's just C with nicer syntax and modern data structures, there's no "squeezing" required. You just compile for the target you want to run on. Here's a UI framework, if you scroll down you'll see it on a Raspi Pico: https://github.com/MadlyFX/Ansuz https://github.com/MadlyFX/Ansuz
- RetroTechie 3mo agoI think you missed "native development". I'll rephrase: Could a toolset to develop in Odin be made to run on (not just target) an STM32 microcontroller like you used? > It's just C with nicer syntax and modern data structures That suggests the above would (in theory) be possible for any device that's roughly in the same class as "can run a C compiler". Correct?
- fatty_patty89 3mo ago> It's just C with nicer syntax and modern data structures it's not, it's llvm
- andyfilms1 3mo agoOkay, I mean obviously :D I was more trying to convey the feeling of it.
- gingerBill 3mo ago> STM32 microcontroller The answer is "yes" depending on what you mean by STM32 :D But if it's one we don't currently support officially, it should be pretty easy to support too, with probably a little extra assembly.
- christophilus 3mo agoI’d be interested in reading about your experience building web applications with it. Last I looked, its stdlib didn’t have great support for that.
- sarchertech 3mo agoThere’s an official http package coming out and native tls support as well.
- christophilus 3mo agoYeah, but OP has built web applications without those. So, I wonder how they went about it.
- andyfilms1 3mo agoI used WASM
- pjmlp 3mo agoPersonally, I have a certain Turbo Pascal feeling while playing around with it, yep I am aware of the influences.