Modes can be dangerous in a user interface, especially if the UI does not make the modes and their states clearly visible. This is often heard advice about UI design. I collected snippets of this advice/heuristics here.
If you have a different point of view or know scientific articles or textbooks that further discuss this, I would love to hear about it!
I finally got sick and tired of all my windows laptops breaking physically one way or another. First there was ThinkPad Edge, then there was the ultrathin Sony Vaio (bought just before Sony sold the business and discontinued the thing).
Developers, Linus Torvalds included, online seemed to agree that MacBooks are the best hardware on the market.
So bought one, and installed Windows 10 with Bootcamp. All was swell, until I decided to try the Beckhoff TwinCAT XAE environment for PLC (programmable logic) programming.
He promotes the idea of having automated tests (unit tests) and running them all the time to prevent your code from becoming an enormous, unholy mess. When you have tests, you are not afraid of making changes. (In fact, you are effectively improving the user experience of programming1.) You can play all you want, because you know exactly when anything in your code breaks as a result of you changing the code.