logoalt Hacker News

estimator7292last Tuesday at 2:45 PM4 repliesview on HN

Trouble is, this kind of trivial throwaway application is all that Arduino is really good for. Because the framework is designed to support thousands of chips, it supports none of them well. Any arduino code you write is easily 5x more terse than any of the native libraries, but it's also 10x slower. If you don't care, you don't care. But if you do care, Arduino is the least appropriate way to make a microcontroller go.

Besides that, IMO hiding hardware details from the developer is the worst thing about Arduino. The hardware details matter and it's far too easy to get footgunned by some implementation detail hidden from you.

But really, esp-IDF isn't that much more complex, nor are most of the other native frameworks. It's a bit more verbose, but esp-IDF provides helper libraries that replace almost everything Arduino provides, but in a way that is actually designed for the hardware and doesn't have to do things like lookup pin numbers in a giant table for each and every gpio call.


Replies

palmotealast Tuesday at 4:00 PM

> Besides that, IMO hiding hardware details from the developer is the worst thing about Arduino. The hardware details matter and it's far too easy to get footgunned by some implementation detail hidden from you.

Wasn't Arduino not for developers, but for hobbyists? People who aren't super technical but want to do something neat with basic microcontroller functionality?

You're complaint kinda seems like saying "BASIC isn't great language, it's got a lot of problems when used for enterprise applications." It's not really meant for that.

show 1 reply
mikepurvislast Tuesday at 2:58 PM

The pin mapping shenanigans are another annoying footgun with Arduino. Even in native development you're dealing with a physical pin number and the logical assignment (PA5, PA6, etc), but now Arduino maps that all again to an Arduino board pin number, and it's all shuffled to ensure the peripherals are in the right place to enable I2C, ADC, and PWM pins to function as expected.

show 2 replies
snittylast Tuesday at 2:58 PM

And yet there is clearly a market for easy-to-program MCUs for hobby and educational purposes.

show 1 reply
kiicialast Tuesday at 6:15 PM

arduino was supposed to be learning opportunity and training grounds for people who wanted to work in the field in the future, there was small arduino boards (similar to pi pico) for integration with actual projects, but still arduino was for hobbyists and students in the first place