Despite the overall negative tone of the article, the author seems to be aware of their blind spots:
> As will be obvious from this posting, I’m not an expert in dev tools for embedded systems. Far from it. This area seems like quite a deep swamp, and I’m probably not the person to help drain it. (Frankly, much of the improvement work ought to be done, and paid for, by hardware vendors.)
The main issue here is that the entire Arduino ecosystem is, to put it bluntly, a huge mess due to its scrappy nature. It often gets pushed as the default "recommended" way of doing anything with microcontrollers, but it is not and was never meant to be used by experienced developers. Idiosyncracies such as having to install a third-party package just to be able to target the ATtiny85 - a microcontroller based on the exact same AVR architecture as the other boards the IDE ships with built-in support for - are far too common and very little progress has been made so far to tackle them.
If you are the kind of person who wants or needs proper debugging capabilities, a standard build system or the ability to use your own IDE, you would be better off leaving Arduino in favor of a more traditional SDK package (either the official one provided by the vendor or an open source alternative such as avr-libc or libopencm3). Which, incidentally, is what the author did here: the complaints about Rust vs. C(++) have nothing to do with the actual language, they are about the surrounding libraries and build systems. The overflow could have been caught by compiler warnings if it weren't for Arduino disabling them by default in the name of beginner friendliness, as already pointed out by others.
The complaint about vendor support is similarly unfounded. While it is true that the quality of manufacturer-provided IDEs and SDKs often leaves something to be desired, they exist and are generally well supported. Vendors have no obligation to support Arduino or Rust options, neither of which are (yet) commonly used in the industry outside of hobbyists.
> the entire Arduino ecosystem is, to put it bluntly, a huge mess due to its scrappy nature
It's less scrappy in my experience that a lot of the tools "aimed at professionals". (I guess "aimed at professionals" in the embedded space approximately means "no documentation".) I think the fact that you don't have to spend 50% of your time fighting the tools is a big reason for the popularity of the Arduino exosystem. It's just nice to have an IDE that's not so proprietary and stuck in the 90s as to crash every ten minutes (which they try to make you use for whatever vendor lock-in or similar reasons)
> As will be obvious from this posting, I’m not an expert in dev tools for embedded systems. Far from it. This area seems like quite a deep swamp, and I’m probably not the person to help drain it. (Frankly, much of the improvement work ought to be done, and paid for, by hardware vendors.)
The main issue here is that the entire Arduino ecosystem is, to put it bluntly, a huge mess due to its scrappy nature. It often gets pushed as the default "recommended" way of doing anything with microcontrollers, but it is not and was never meant to be used by experienced developers. Idiosyncracies such as having to install a third-party package just to be able to target the ATtiny85 - a microcontroller based on the exact same AVR architecture as the other boards the IDE ships with built-in support for - are far too common and very little progress has been made so far to tackle them.
If you are the kind of person who wants or needs proper debugging capabilities, a standard build system or the ability to use your own IDE, you would be better off leaving Arduino in favor of a more traditional SDK package (either the official one provided by the vendor or an open source alternative such as avr-libc or libopencm3). Which, incidentally, is what the author did here: the complaints about Rust vs. C(++) have nothing to do with the actual language, they are about the surrounding libraries and build systems. The overflow could have been caught by compiler warnings if it weren't for Arduino disabling them by default in the name of beginner friendliness, as already pointed out by others.
The complaint about vendor support is similarly unfounded. While it is true that the quality of manufacturer-provided IDEs and SDKs often leaves something to be desired, they exist and are generally well supported. Vendors have no obligation to support Arduino or Rust options, neither of which are (yet) commonly used in the industry outside of hobbyists.