There is a good reason why iterative deepening is popular for chess-playing programs (and others). In competition play there is an average amount of time allowed per move. The idea that capitalises on this constraint is to do as much lookahead as can be done in the available time. If we use iterative deepening, we can keep on increasing the lookahead depth until we run out of time. We can arrange to have a record of the best move for a given lookahead -even if we have to interrupt our attempt to go one level deeper. This could not be done using (unbounded) depth-first search.