|
|
|
|
|
by ajarmst
3295 days ago
|
|
I was there for the first generation of the PC revolution (and my father was a mainframe programmer---he and his colleagues LOVED Apple IIs and TRS-80s). There are echoes of the conflict, but it (as always) is more complex. The problem with Arduinos is not that they're "shit" (they're well-designed low-end general-purpose embedded development platforms). The problem is that their development ecosystem and community seem to purposefully hide the complexity and detail of the hardware. Which is precisely the opposite of what the early generation of hobbyist home PC developers and engineers did --- they revelled in the (modest) complexity of their platforms and actively tried to expand it (our home Apple II eventually had to escape the confines of it's case and sported a Z-80 co-processor so we could play with CP/M, too). I was a member of the generation that cut their teeth on those simple home computers, and they were a fantastic way to start to learn our profession. They taught us abstractions that helped us move to the next levels of complexity, and the intuitions about computers that we learned were accurate and helpful. My argument (not really mine, I'm reporting it from others, I'm a little more on the fence) is that, while the Arduino platform could do the same thing for a generation of hardware engineers, its community (and those who hope to make money off of it) seems to be going out of their way to avoid it. People who accept the default tools and attitude of the Arduino are not encouraged to understand how microcontrollers work. They are encouraged to follow a recipe, stuff some parts into a breadboard with no understanding of electronics or awareness that a datasheet is even a thing, download code they don't even read, and start high-fiving themselves when they make an LED glow. (OK, that's a caricature too, but I've decided to give myself some rhetorical license). |
|
I would wager that every engineer gets started by following recipes. I started by copying code from books and magazines into QBasic with no idea what I was doing. I started web development by gluing together magic bits of Javascript that did god-knows-what. I don't recall being encourages to understand how these tools worked under the hood.
But that's just the start; once someone is familiar with the parts (and importantly, can make something do an interesting thing quickly) then they can start making changes to that recipe, and in time writing their own.