Hacker News new | past | comments | ask | show | jobs | submit login
Which language to choose? Wanna develop an IoT solution
7 points by BroccoliPark on Oct 8, 2022 | hide | past | favorite | 10 comments
Hi mates! I am going to develop an IoT solution, maybe a framework? Anyway still in design. The problem is which language to choose, seems Go would be a better choice for its fast and high performance. Any guidance would be greatly appreciated!



Is this for learning or for money?

If you’re learning, check out Elixir Nerves: https://www.nerves-project.org/ Elixir’s a fun and friendly ecosystem, and Nerves makes embedded development really smooth.

If you’re starting a business, choose something you already know; barring that, get as close as possible; if you’re non-technical, choose something easy to hire for.


You don't really mention which part of an IoT solution? An actual device in people's homes? On factory floors? Some kind of router or edge gateway? Backend components?

The component itself will already limit your amount of reasonable choices for a language or framework. You probably neither want to Java on a microcontroller with 256kB RAM, nor C on a backend.


If the target device is based on a microcontroller, I think C is the only reasonable choice, due to the ecosystem.

If the target device is an embedded Linux computer, you can choose pretty much any language you’re comfortable with. The golang is probably fine. Personally, I have good experience making embedded Linux software with C#. The performance on both ARMv7 and ARM64 CPUs is pretty good, comparable to compiled languages. The only downside is the runtime size. The current LTS version is .NET 6, the ARM64 Linux runtime takes 75MB on disk, or even 100MB if you want asp.net for a web interface of your device. Not all devices have gigabytes of flash memory.


you know, "IoT Solution" is not at all specific. For good guidance, you need to give a few more details, like where will this "solution" run (on the "thing" side or on the server side, on a smart hub, etc?). What goals do you have? how should this thing look, architecture wise?


If you're referring to endpoint hardware computing devices using some microcontroller similar to the esp32, you should definitely learn C. From there you can tack on a low level scripting language like lua or ulisp to compliment the low level stuff that you'll be writing. This will give you the best performance and understanding of the low level hardware, not to mention it's what the majority of libraries and tutorials on the subject will be written in.

If you're referring to something else, like a hub, you may want to list out your requirements and familiarity. C is still a good choice, but Go/Python/NodeJs what have you have all been used successfully for similar adventures.


I don't see how you can get an answer without saying at least what hardware you are planning to use. Generally the cheaper and more efficient it is the less choices you will have. Or is this an Iot hub?


Pick the language you’re most comfortable with. The one you feel good using.



Go is relatively easy to learn and https://gobot.io/ is a good way to start.


Go. I’m an consultant and have a golang iot platform that does ingest transforms rules alarms. We have 10k devices and use Scylla and it just works.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: