I teach an Introduction to Engineering Design course where students program Arduino-powered robots to autonomously navigate an obstacle course. I keep wishing I could have a conversation with @gvwilson because I think ArduinoC actively encourages *bad* software engineering practices. Yesterday I had to tell a student that it would be more trouble than it was worth to try to extract repeated behavior into something like a function, and my heart sank.