this is going to go in my collection of classic comments about arduino, you're saying arduino is "bad" and "harmful" (to who and how?) because more, and different people than you might get interested in electronics as a hobby. wow.
here's another you may enjoy from my article "Why the Arduino Won and Why It’s Here to Stay"
Everyone and especially the arduinists themselves.
> people than you might get interested in electronics as a hobby. wow.
People get interested in Arduino, not electronics; they get interested in the bling, not how it works. Instead of wasting time with Arduino, they can as well just read the datasheets.
Then I guess everyone who has not written their own network stack and built their own networking hardware should get off the internet. After all, they are just interested in the bling and not how it works.
Web browsing is more likely to get someone interested in TCP/IP than plopping the RFCs in front of them. I know I've found myself more motivated to learn more of the basics of electronics after working with an Arduino than basic crap I put together for a logic course.
People learn different ways and are motivated in different ways. I'm motivated to learn top down in electronics. Arduino is helpful to that crowd.
The problem starts when someone unfamiliar with low level OS details writes a network service; you end up hacked. With arduino people get false sense of knowledge and when they put the things togethe for a real world application, it ends up bad.
> I'm motivated to learn top down in electronics.
Very dangerous and potentially deadly approach (electric shock, battery caught fire, floating inputs cooked the processor etc.) Electronics is not programming: errors have tanible consequences.
Arduino has its niche: it is artists; it actually started as a part of Processing. However, what bothers me is the culture around it: newspeak ("fritzing" etc.), lack of understanding that it is a toy and inferior thing, not suitable for real-world applications; abundance of bad hardware designs; overall drive toward abstraction, which is not ok when dealing with real world tasks.
To be fair, every generation skips the basics learned by the previous generation to some extent - standing on the shoulders of giants is the only way to reach further.
There's definitely value in digging deeper into more fundamental components, but I wouldn't say that doing so is the only way to advance the field, and even if there's a flood of superficial hobbyists, would you argue that there are actually fewer people who learn the basics?
Partially agree, the same could be said about the Parallax crowd 20 years ago.
I think the real problem is Abstraction. Most things are assembled as blocks, with no idea how the blocks work. It seems like many projects today consist of, A) Take X microcontroller B) Add Y1, Y2, Yx component blocks (LCD screen, motor controller, etc.) C) Add connecting wires D) Use manufacture supplied libraries E) Add some custom code for your domain.
Which is exactly the progression that software made. When was the last time you wrote your own bios, bootloader, os, device drivers, filesystem, network stack, etc.? You don't do that now, as you said, "most things are assembled as blocks," except it's worse than that, you just get a big monolithic "OS" now days install that on your desktop and then you write "custom code for your domain."
I don't think this is a bad thing, since all that software that you don't write yourself is available as open source and you can still dig in and see how it works if you want. I'm not a close follower of arduino, but from what I understand the low-level code and board schematics and layout are open source, so it's kind of the same idea. I don't think the processor is open source though (having the verilog code, timing constraints, layout, etc. for that would be the ideal).
I've been designing electronics and firmware professionally for my entire career. Right now I'm acting as a consultant developing a network-enabled industrial device. It's going to be powered by an Arduino simply because it's easy to do, robust enough (after I design appropriate power supply protection), and most important: enormous amounts of documentation and experience in the community means I can probably complete the entire project in less than a day of work.
That's what matters. Not some mistaken concept of "gentrification" because you're pissed off at opening up your Good ol' boys club.
> I've been designing electronics and firmware professionally for my entire career.
That makes absolutely no difference. You can still be a bad engineer.
If you find Arduino bastardized C++ superior than AVR-GCC, you are a poor developer. Everything you can do with Arduino C++ wrapper you can do with normal C++. You'll save resources, end up with firmware, written in industrially standard language, will have better control over hardware.
> experience in the community means I can probably complete the entire project in less than a day of work.
If you after "designing electronics and firmware professionally for the entire career
" still need assistance from the community for already well-documented 8-bit controller, it tells about you.
> pissed off at opening up your Good ol' boys club.
No, I am not - after all I am not an embedded developer; I am pissed that it is advertised as something it is not: not a good tool for making industrial automation, not a good tool to stay with if you decide to get involved with automation seriously. It gives a wrong idea to the student about how AVR works, it locks you in with the platform and at the same time dominates the sector.