In (game) development, simplicity scares me, I’ve come to realize that.
A good example are game engines. I’ve used XNA for a long time, because you get a basic drawing surface & APIs and you have to code everything yourself. When a game developer opts to use something like DirectX or XNA, they have to spend (waste?) several months creating what they call “the engine”, the framework of the game. On the other hand you have game engines like Unity which are “rapid-development” tools and do a lot of work for you, have complex things a few mouse clicks away. Some things that take months of work in XNA take mere minutes or seconds in Unity (creating a 3D particle system or switching game screens is a good example).
Yet the time I used Unity scared me, because at times it didn’t feel like I was in control. Unlike XNA, you can’t go over each line from start to finish to see what happens, you have to rely on the things Unity gives you. That’s a good thing because Unity makes things much faster and simpler, but still, it scares me. I like being in control, I like understanding what’s going on deep-down, and I love the satisfaction of having spend lots of time on coding something and it works (even when it takes seconds to create in-game engines like Unity). I love creating something difficult while there are other libraries available to do the job.
Over the past months I realized I wasted way too much time in my XNA-way-of-thinking (even outside programming) while I should really try to not choose the hard way when Unity-like simplicity gets the job done much faster and easier. For me, it’s a fundamental change in behavior, and it scares me.