I am not sure if contrasting with OOP is a good idea since OOP could be used for embedded programming, and things like a test driven approach would be facilitated by the many unit test frameworks...