| ▲ | phoehne 7 hours ago | |||||||
From an embedded developer's perspective, Arduino is awful. That hero-loop programming is not what anyone should ever do. And experienced developers can get better results from something like FreeRTOS (or if you're a masochist Zephyr). And ESP32s are cheaper, as are RP2040s. ... But take a room full of kids and get them to write a program that blinks an LED, or drive a simple 'robot' forward, and it's awesome. Easy to use. I've never burned out a board (even driving considerable current through them). Things are tolerably well marked. Lots of teaching tools. Lots of different suppliers of easy to connect motors, servos, lights, sensors, etc. For the same reason, if you are not an embedded engineer, but need a simple micro-controller to turn something on an off like a heater in a chicken coop, it's fantastic. And if you want, buy the $5 knock-off Uno. It should be the same, except that it doesn't support the (now defunct) foundation. | ||||||||
| ▲ | adiabatichottub 6 hours ago | parent [-] | |||||||
> From an embedded developer's perspective, Arduino is awful. Specific AVR Arduino annoyances I remember: * Strings loaded to RAM instead of program memory, so you use up all your RAM if you have a lot of text. Easily fixed with a macro * serial.println blocks, so your whole program has to stop and wait for the string to be transmitted. Easily fixed with a buffer and ISR * Floating-point used everywhere, because fuck you * No printf(). It's in avr-libc, and it's easy plumbed in, but the first C/C++ function that everybody ever learned to use was somehow too complicated or something. * A hacked-together preprocessor that concatenated everything, which meant you could only have your includes in one place, thus breaking perfectly good, portable code. I think they ultimately did a disservice to novice programmers by giving them something that was almost a standard C++ environment, but just not quite. | ||||||||
| ||||||||