I am writing this at the airport, just coming back from the Intel IDF event. I keep hearing that we have "Lock Free" solutions for all sorts of problems.
The answer is "almost". There are two types of bugs: Reliability and Usability.
Almost any device today has software on it. This includes laptops, Ultrabooks, cell phones, TV sets, Set-Top-Boxes, Microwave Ovens, Cars, Medical Devices, etc.
There is a long discussion talking about the advantages of Procedural Programming vs. the advantages of Object Oriented Programming.