Do you have an opinion over which helps either you or your colleagues reason about your applications better?
Personally I'd always gone with imperative, but I thought about it recently and realised that whenever I'm looking at a list of state transitions things felt a little strange. For example:
Whilst this is easy enough to follow, it's hard to describe it without reverting to past tense anyway: The user started the game, the URL changed, the user changed rooms, the user toggled the inventory...
But this isn't the same when you're writing the code: "When a user opts to start the game, I want the game to start" etc.
So I'm interested: what do you use?