So what's wrong with assembly? Is C really better than assembly?
Each has its place for certain task. Languages let you abstract away different things and therefor think different kinds of thoughts while programming. Procedures add a whole new dimension to subroutines. OO adds a whole new dimension to procedures. Closures and functional programming add a whole new way to structure thought and code.
Would it be a good idea to use C to write a timing routine for a micro controller? Or to use assembly to write a gui?
You use the right level of abstraction (through the use of the right language) to think the right thoughts for the task at hand. Experience teaches you when to use what.
If you stubbornly stick to a non-object oriented approach when you should have used one, you'll likely end up reinventing a subset of object orientation anyway, probably badly.