Earlier quoted context omitted.
You must be some sort of programming GOD, I guess. The problem is that its _hard_ to get right. For example - It's not trivial to use locks when you're working at an abstraction level higher than operating systems. Most people don't even realise there is a race in their application, because locks are inherently non-enforcing. Code written in locks is also really hard to read and reason by. Message passing just makes…
busy-waiting is a valid technique for some use-cases (and gives better performance in those situations) than other techniques. Please research your topic.
(Speaking purely from experience. Don't have a fancy CS degree)