It would help if regular userspace software wasn't written in languages that were primarly designed to write portable OS kernels.
Even if not all logic errors can be prevented, some of them keep happening by using the wrong tools.