The benefits of single-threaded programming