The Boeing 737 Max crashes were caused by a combination of problems, none of them spelled OOP. The the underlying causes of these problems were greed and bad management.
First, Boeing tried to get a new aircraft design certified by the FAA as if it were merely an enhancement to an existing design and lied to support that subterfuge. All to save the millions of extra dollars it would have cost to certify a new design.
Second, also to save money, Boeing designed an inherently unstable aircraft which required computer augmentation to fly safely. Something that is usually done only on military aircraft with ejection seats. For many reasons they didn't spring for the ejection seats.
Third, the third-party software developers had no real experience with flight systems or direct contact with the Boeing engineers. The did not even consider that their software had the power to out-muscle the pilots. They also did not understand how critical having two cross-checked AoA sensors would be and they did not know how critical a manual override would be.
Fourth, Boeing lied to the FAA about the degree of horizontal stabilizer deflection the software could generate and the amount of force pilots would need to physically exert to override it.
Fifth, to make a few more dollars, Boeing management made a second AoA sensor an extra cost option. If there had been two cross-checking sensors, the other issues would have been far less likely to have led to catastrophic failure.
It would have made no difference what languages or programming paradigms were used for the software. The fix was in.