i've heard from many programmers that programming is creative work. this idea mystifies me. i think of programming as utilitarian. programming is a tool to solve problems. there must be an 'optimal' way to solve the problem within the given constraints.
playing guilty gear has begun to change my mind.
guilty gear is a series known for having a flexible combo system and a lot of options. there are many ways to approach your opponent and attack them. when you're doing a combo, you can use different routes depending on the opponent's position, health, or weight.
in theory, every combo and every situation has an 'optimal' solution. a 'best' path that lets you do as well as you possibly can. but in reality, there are two factors more important:
practicality, and personal expression.
the theoretical best thing to do in a situation might turn out to be impractical. maybe it's not fully tested, maybe it's too difficult, or maybe it's just too risky. it can be better to go for safer options you're more comfortable with.
and each player has their own style - their own way to approach the game. different players in the same situation will do different things, because they each have their own way of solving problems.
and that's what programming is about, isn't it? solving problems. the tools of a language are always the same, much like the moves of a guilty gear character. but the way people use those tools to solve their problems can be very different from person to person. and while there might be an 'optimal' way to solve a problem, it's better to do something suboptimal than to do nothing at all.