As someone that cut their teeth is the '70s with K&R C the biggest thing I see is poor programming
not poor programming languages. I also grew up in systems where resources are scarce and
adding them was expensive. So pardon me if I think 32K of code space, 1k of eeprom and 2K
of ram is a lot of space. Sure beats 8749 with 2K of program Eprom, 128byts of ram and a timer.
OOP is not a bad word but it may be very stupid in a machine with maybe 2K of ram, code
accordingly. The problem is coders (not programmers) that figure if it doesn't fit use a bigger
chip. Then again if the objects are small it can be useful. For example a Arduino Mega2650
running a two axis (elevation and azimuth) antenna control that serves out position and
tracking as a web page. No it isn't full and it even gets the TLEs for the Sat to track via
the web page. One of these days I need GPS and a electronic compass so it knows
where it is and what way is north so I can move it with out calibrating it afterwards.
Writing that in plain ansi C is just more error prone work than it needs to be.