Looking for Stable Alternatives to Python for Embedded Linux Development

0
4
Asked By TechieTrekker42 On

Hey everyone! I'm diving into embedded Linux systems and I'm in need of a stable and high-performance programming language, especially for writing drivers. While I usually code in C, I'm exploring higher-level options that can work alongside my work on OS, PCB, and HDL.

My main concern with Python is its ecosystem—things tend to get outdated quickly, and it's quite a hassle to update my Yocto builds. The team often uses libraries like Numpy and Pandas, which feel a bit excessive for embedded applications, even though we frequently require FFT streaming. If the system's Python version becomes outdated, it causes issues with the code.

I've looked into a few languages:

1. LUA: I'm concerned about the JIT version split.
2. Golang: It seems stable, but the lack of LTS releases worries me.
3. Java: Just kidding! It lacks unsigned types which I need.
4. TCL: Familiar from FPGA tooling, but not a fan of the syntax.
5. Python: Bugs have been problematic, especially with memory map reads.
6. Bash/Zsh: OK for minor tasks.

Can anyone suggest solid alternatives that strike a good balance?

5 Answers

Answered By GolangGuru14 On

Golang might just fit the bill! Old versions of code remain compatible with newer releases, so you can upgrade without worrying too much about breaking things. It's designed with stability in mind and is quite performant too!

Answered By ErlangExplorer On

For soft real-time equipment control, Erlang could be worth considering. It's designed for concurrent systems and handles data gathering nicely. Plus, once you deploy a Python app, you can choose not to upgrade libraries immediately, which provides some stability.

Answered By CSharpie2020 On

If you're facing issues with system Python, avoid using it for your projects as it can create trouble. Tools like 'uv' help manage specific versions. For low-level drivers though, I'd still suggest considering Rust or C since they're designed for this purpose.

Answered By RustFanatic99 On

You might want to check out Rust. It has amazing interoperability with Python thanks to Maturin, which can make it easier to integrate with existing Python components in your project. It's a solid choice for performance without the usual headaches of C or C++.

DevDynamo27 -

That sounds great! I know a few folks using Rust alongside Python and they've mentioned it works really well. I'll look into Maturin!

Answered By PythonProponent On

I'd suggest sticking with Python for high-level tasks. The transition costs might be significant, especially for different teams. Libraries can be pinned to specific versions, and using virtual environments opens up compatibility options, allowing versions to remain stable for production while offering flexibility for development.

CoderKing85 -

That’s a good point! Coordinating Python versions across teams could really help to avoid deployment surprises.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.