C for micros, C# and/or Java for computers. C# is the proper implementation of OOPs for C, C++ is the improper implementation of OOPs for C. There is a reason why Microsoft spent the money they did to create .NET and managed code. BTW, how good is C#? Well 90% of .NET is written in C#. Microsoft thinks it's pretty good.
And C is still just fine for most programming on computers. OOPs programming is meant for very large programs involving large number of people and large numbers of files maybe spread throughout the country. It's a way of engineering software, breaking a program down into it's logical components with defined inputs and outputs (like a car has a drivetrain, a chassis, a suspension and so on). For most programs you can just write the damn thing in C while everyone else is defining what the objects are and what their inputs and outputs are and what their relationship to other components is. (Well you could in the days before .NET which of course does not expose a C interface since C does not have a class interface which is a prerequisite in .NET.)